`
sangei
  • 浏览: 337241 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

oracle的分号和斜杠(转)

阅读更多
引用
1. Adding a slash to the end of each statement was a bad choice because sqlplus treats slash as a buffer flush. For procedure/triggers/functions it is a must: because content of if is stored in the buffer and is not executed. However, for all other statements it means executing the same statement twice because such statement is executed immediately and put into buffer and following slash just re-executes the same statement.


我的理解是,对一些block,比如declare, begin end ,create procedure之类的,'/'是必须的,用来run
而一些简单statement,‘/ '会导致运行两次

问题是,直接用一个'/'就会运行两次,还是在分号之后还在下行跟着 / 才会执行两次?

另外,如果要避免重复执行的话,分号和斜杠是不是二选一就可以了,一般选哪个有啥习惯?
<!-- google_ad_section_end --><!--End_body//-->
 
 
回复次数:8<!-- | 浏览次数:<span csdnid="vcount" title="该帖阅读数为429">429</span>-->

 

<!-- google_ad_section_start(weight=ignore) -->
  • tangren用户头像
  • tangren
  • (老兵新手)
  • 等 级:
  • 3

    2

#1楼 得分:20回复于:2010-05-24 14:44:30
1、放在分号后面的 / 会导致两次;sqlplus认为输入“;”表示一个语句结束
2、分号
<!--End_rbody_65677030//-->
 
#2楼 得分:0回复于:2010-05-24 14:46:49
引用 1 楼 tangren 的回复:

1、放在分号后面的 / 会导致两次;sqlplus认为输入“;”表示一个语句结束
2、分号


谢谢。

再问一下
像create procedure,到最后也应该有个分号结束,然后再跟一个斜杠
对这种block的这样没问题吗?
<!--End_rbody_65677083//-->
 
#3楼 得分:20回复于:2010-05-24 14:58:42
我的理解是;是执行语句必须的
/是执行语句块必须的
<!--End_rbody_65677550//-->
 
  • iihero用户头像
  • iihero
  • (iihero)
  • 等 级:
  • 3

    2

#4楼 得分:20回复于:2010-05-24 15:17:03
引用 2 楼 believefym 的回复:

引用 1 楼 tangren 的回复:

1、放在分号后面的 / 会导致两次;sqlplus认为输入“;”表示一个语句结束
2、分号


谢谢。

再问一下
像create procedure,到最后也应该有个分号结束,然后再跟一个斜杠
对这种block的这样没问题吗?


没有问题,分号只是表示语句结束,并不能断定要执行,加一个/,则表示要执行前边的语句块。
<!--End_rbody_65678314//-->
 
  • wkc168用户头像
  • wkc168
  • (l_db)
  • 等 级:
  • 5

    2

#5楼 得分:20回复于:2010-05-24 16:18:01
引用楼主 believefym 的回复:
引用
1. Adding a slash to the end of each statement was a bad choice because sqlplus treats slash as a buffer flush. For procedure/triggers/functions it is a must: because content of if is stored in th……


语句中一个;是结束标志 
最后一个 ;是执行语句块跟/一样的
<!--End_rbody_65680708//-->
 
  • ojuju10用户头像
  • ojuju10
  • (永州之野产异蛇—永州异蛇!)
  • 等 级:
#6楼 得分:10回复于:2010-05-24 17:19:52
如果是语句的话,;表示结束并且运行
如果是程序块或者pl块,;表示结束不允许,必须/表示运行
<!--End_rbody_65683428//-->
 
#7楼 得分:10回复于:2010-05-24 21:58:34
楼上的已经说的很清楚了!
;是执行语句必须的
/是执行语句块必须的
引用
1. Adding a slash to the end of each statement was a bad choice because sqlplus treats slash as a buffer flush. For procedure/triggers/functions it is a must: because content of if is stored in the buffer and is not executed. However, for all other statements it means executing the same statement twice because such statement is executed immediately and put into buffer and following slash just re-executes the same statement.


我的理解是,对一些block,比如declare, begin end ,create procedure之类的,'/'是必须的,用来run
而一些简单statement,‘/ '会导致运行两次

问题是,直接用一个'/'就会运行两次,还是在分号之后还在下行跟着 / 才会执行两次?

另外,如果要避免重复执行的话,分号和斜杠是不是二选一就可以了,一般选哪个有啥习惯?
<!-- google_ad_section_end --><!--End_body//-->
 
 
引用
1. Adding a slash to the end of each statement was a bad choice because sqlplus treats slash as a buffer flush. For procedure/triggers/functions it is a must: because content of if is stored in the buffer and is not executed. However, for all other statements it means executing the same statement twice because such statement is executed immediately and put into buffer and following slash just re-executes the same statement.


我的理解是,对一些block,比如declare, begin end ,create procedure之类的,'/'是必须的,用来run
而一些简单statement,‘/ '会导致运行两次

问题是,直接用一个'/'就会运行两次,还是在分号之后还在下行跟着 / 才会执行两次?

另外,如果要避免重复执行的话,分号和斜杠是不是二选一就可以了,一般选哪个有啥习惯?
<!-- google_ad_section_end --><!--End_body//-->
 
 
回复次数:8<!-- | 浏览次数:<span csdnid="vcount" title="该帖阅读数为429">429</span>-->

 

<!-- google_ad_section_start(weight=ignore) -->
  • tangren用户头像
  • tangren
  • (老兵新手)
  • 等 级:
  • 3

    2

#1楼 得分:20回复于:2010-05-24 14:44:30

 

 

 

1、放在分号后面的 / 会导致两次;sqlplus认为输入“;”表示一个语句结束
2、分号
<!--End_rbody_65677030//-->
 
#2楼 得分:0回复于:2010-05-24 14:46:49
引用 1 楼 tangren 的回复:

1、放在分号后面的 / 会导致两次;sqlplus认为输入“;”表示一个语句结束
2、分号


谢谢。

再问一下
像create procedure,到最后也应该有个分号结束,然后再跟一个斜杠
对这种block的这样没问题吗?
<!--End_rbody_65677083//-->
 
#3楼 得分:20回复于:2010-05-24 14:58:42
我的理解是;是执行语句必须的
/是执行语句块必须的
<!--End_rbody_65677550//-->
 
  • iihero用户头像
  • iihero
  • (iihero)
  • 等 级:
  • 3

    2

#4楼 得分:20回复于:2010-05-24 15:17:03
引用 2 楼 believefym 的回复:

引用 1 楼 tangren 的回复:

1、放在分号后面的 / 会导致两次;sqlplus认为输入“;”表示一个语句结束
2、分号


谢谢。

再问一下
像create procedure,到最后也应该有个分号结束,然后再跟一个斜杠
对这种block的这样没问题吗?


没有问题,分号只是表示语句结束,并不能断定要执行,加一个/,则表示要执行前边的语句块。
<!--End_rbody_65678314//-->
 
  • wkc168用户头像
  • wkc168
  • (l_db)
  • 等 级:
  • 5

    2

#5楼 得分:20回复于:2010-05-24 16:18:01
引用楼主 believefym 的回复:
引用
1. Adding a slash to the end of each statement was a bad choice because sqlplus treats slash as a buffer flush. For procedure/triggers/functions it is a must: because content of if is stored in th……


语句中一个;是结束标志 
最后一个 ;是执行语句块跟/一样的
<!--End_rbody_65680708//-->
 
  • ojuju10用户头像
  • ojuju10
  • (永州之野产异蛇—永州异蛇!)
  • 等 级:
#6楼 得分:10回复于:2010-05-24 17:19:52
如果是语句的话,;表示结束并且运行
如果是程序块或者pl块,;表示结束不允许,必须/表示运行
<!--End_rbody_65683428//-->
 
#7楼 得分:10回复于:2010-05-24 21:58:34
楼上的已经说的很清楚了!
;是执行语句必须的
/是执行语句块必须的

       
引用
1. Adding a slash to the end of each statement was a bad choice because sqlplus treats slash as a buffer flush. For procedure/triggers/functions it is a must: because content of if is stored in the buffer and is not executed. However, for all other statements it means executing the same statement twice because such statement is executed immediately and put into buffer and following slash just re-executes the same statement.


我的理解是,对一些block,比如declare, begin end ,create procedure之类的,'/'是必须的,用来run
而一些简单statement,‘/ '会导致运行两次

问题是,直接用一个'/'就会运行两次,还是在分号之后还在下行跟着 / 才会执行两次?

另外,如果要避免重复执行的话,分号和斜杠是不是二选一就可以了,一般选哪个有啥习惯?
<!-- google_ad_section_end --><!--End_body//-->
 
 

Adding a slash to the end of each statement was a bad choice because sqlplus treats slash as a buffer flush. For procedure/triggers/functions it is a must: because content of if is stored in the buffer and is not executed. However, for all other statements it means executing the same statement twice because such statement is executed immediately and put into buffer and following slash just re-executes the same statement.

 

我的理解是,对一些block,比如declare, begin end ,create procedure之类的,'/'是必须的,用来run
而一些简单statement,‘/ '会导致运行两次

问题是,直接用一个'/'就会运行两次,还是在分号之后还在下行跟着 / 才会执行两次?

另外,如果要避免重复执行的话,分号和斜杠是不是二选一就可以了,一般选哪个有啥习惯?

 

1、放在分号后面的 / 会导致两次;sqlplus认为输入“;”表示一个语句结束
2、分号

 

 

 

引用 1 楼 tangren 的回复:

1、放在分号后面的 / 会导致两次;sqlplus认为输入“;”表示一个语句结束
2、分号

谢谢。

再问一下
像create procedure,到最后也应该有个分号结束,然后再跟一个斜杠
对这种block的这样没问题吗?

 

 

 

我的理解是;是执行语句必须的
/是执行语句块必须的

 

 

 

引用 2 楼 believefym 的回复:

引用 1 楼 tangren 的回复:

1、放在分号后面的 / 会导致两次;sqlplus认为输入“;”表示一个语句结束
2、分号


谢谢。

再问一下
像create procedure,到最后也应该有个分号结束,然后再跟一个斜杠
对这种block的这样没问题吗?


没有问题,分号只是表示语句结束,并不能断定要执行,加一个/,则表示要执行前边的语句块。

 

 

 

 

 

语句中一个;是结束标志 
最后一个 ;是执行语句块跟/一样的

 

 

 

 

 

如果是语句的话,;表示结束并且运行
如果是程序块或者pl块,;表示结束不允许,必须/表示运行

 

 

 

 

 

 

 

楼上的已经说的很清楚了!
;是执行语句必须的
/是执行语句块必须的

 

 

分享到:
评论

相关推荐

    Oracle-SQLPLUS命令.ppt

    执行SQL语句时,可以使用分号或斜杠(/)作为执行标志。如果想清除整个缓冲区,可以使用`CLEAR BUFFER`命令。 SQL*PLUS还提供了许多其他实用命令,如文件操作命令(读取和写入文件)、显示和设置环境变量、格式化...

    Oracle SQl

    - 编辑和运行SQL命令:可以使用分号、斜杠或空行作为命令结束标志,支持PL/SQL块的编辑和运行。 3. **SQL查询**: - **SELECT语句**:用于从表中检索数据,包括指定列(DISTINCT用于去除重复)、FROM子句指定表,...

    Oracle循序渐进全面学习教程.doc

    语句可以在SQL PLUS环境中以分号或斜杠结尾,或者使用RUN命令执行。 2. **数学运算**:在SELECT语句中,可以对数值或日期字段进行加、减、乘、除等四则运算。运算符的优先级遵循标准的数学规则。 3. **处理空值...

    Oracle SQL语言基础

    此外,SQL语句可以通过分号、斜杠或空行来区分和执行。 **2.2 SQL语言的语法结构** SQL语句主要分为六类: 1. **数据查询语言(DQL)**:用于检索数据,如`SELECT`语句。 2. **数据操纵语言(DML)**:涉及数据的...

    Oracle SQL语言

    3. **SQL命令的编辑与运行**:在SQL提示符后输入SQL命令,可以使用分号、斜杠或空行来结束命令。此外,可以利用SQL缓冲区编辑和运行PL/SQL块,或者通过命令文件批量处理PL/SQL代码。 4. **数据库查询**:最常用的是...

    oracle的sqlplus学习笔记.docx

    在使用 SQLPlus 之前,必须正确设置 Oracle 环境变量,包括设置 ORACLE_SID、ORACLE_HOME 和 LD_LIBRARY_PATH,有时还需要设置 NLS_LANG 和 ORA_NLS11。 连接数据库 使用 CONNECT 命令连接到数据库,例如:`SQL&gt; ...

    OracleSQL精妙SQL语句讲解[定义].pdf

    命令可以通过以下方式结束:以分号、斜杠或空行结束。此外,还可以使用SQL缓冲区或命令文件来编辑和运行PL/SQL块,这增强了代码的组织和复用性。 查询数据的核心在于SELECT语句,它用于从表中提取所需的信息。基本...

    Oracle-10g数据库基础教程(XXXX) 第05章SQLPLUS.pptx

    例如,通过分号或斜杠(/)执行SQL语句,使用.LIST显示缓冲区内容,通过.APPEND、.CHANGE、.DEL、.N、.INPUT和.EDIT等命令对缓冲区进行编辑。另外,还有文件操作命令、显示与设置环境变量、格式化命令和其他实用命令...

    Oracle开发应用(PLSQL)基础大全及实例讲解.pdf

    Oracle开发应用的基础主要涵盖PL/SQL编程语言的使用,这是Oracle数据库系统中用于创建和管理数据库应用程序的关键工具。PL/SQL是SQL的扩展,增加了流程控制、异常处理和子程序等高级特性。以下是对PL/SQL基础知识的...

    oracle的sqlplus学习笔记分享.pdf

    SQL*Plus的灵活性和强大功能使其成为Oracle数据库管理员和开发人员的重要工具。通过熟练掌握这些命令,用户能够高效地管理数据库、编写和执行SQL查询,以及自动化数据库维护任务。无论是简单的数据检索还是复杂的...

    ORACLE SQL 语句(典型应用总结).pdf

    根据提供的文档信息,本文将对...以上总结了Oracle SQL语句的一些典型应用案例,涵盖了基本的SELECT语句、限定与排序操作以及常用的功能函数,希望这些知识点能够帮助读者更好地理解和掌握Oracle SQL的相关知识。

    SQLOracle10g数据库基础教程(2010)第05章SQLPLUS工具介绍与常用命令.pptx

    编辑命令允许用户在SQL*PLUS中输入和执行SQL语句,通过分号、回车和斜杠等方式控制语句的执行。 总之,SQL*PLUS是Oracle数据库管理员和开发者必备的工具,通过熟练掌握其使用方法和常用命令,能够高效地进行数据库...

    Oracle10g数据库基础教程(XXXX)第05章SQLPLUS.pptx

    在编辑方面,SQL*PLUS允许用户在缓冲区中输入SQL语句和PL/SQL程序,然后通过分号、回车或斜杠(/)来决定执行方式。 在文件操作命令中,用户可以使用`EDIT`命令编辑SQL脚本,`SPOOL`命令将输出重定向到文件,以及`...

    SQLOracle-10g数据库基础教程 SQLPLUS工具介绍与常用命令.pptx

    2. **编辑命令**:用户可以在SQL*PLUS中输入SQL语句和PL/SQL程序,通过分号、回车、斜杠(/)或点号(.)来执行或结束输入。`LIST`命令用来显示缓冲区内容,`APPEND`用于在缓冲区中添加更多内容。 除此之外,还有...

    Oracle认证考点讲解及试题分析——SQL基础篇.pdf

    通过这些例题,我们能更好地理解和掌握SQL基础的书写规范和使用场景。总体来说,Oracle认证考点讲解及试题分析——SQL基础篇旨在帮助考生深入理解Oracle数据库的SQL操作,为其通过认证考试打下坚实基础。掌握好这些...

    SQLOracle-10g数据库基础教程(2010)第05章SQLPLUS工具介绍与常用命令.pptx

    用户可以通过分号、回车、斜杠等方式控制执行。`LIST`显示缓冲区内容,`APPEND`、`CHANGE`、`DEL`、`N`、`INPUT`、`EDIT`等用于编辑缓冲区。 3. **文件操作命令**:用户可以处理SQL脚本文件,比如运行外部脚本文件...

    PLSQL渐进学习教程

    1. **SELECT语句**:不区分大小写,语句可以用数字分行,并在SQL PLUS中存储于缓冲区,最后以分号或斜杠结束。 2. **数学运算**:可以在SELECT语句中对数值和日期字段进行四则运算,遵循标准的运算符优先级。 3. ...

    精通SQL【经典SQL语句大全】.pdf

    一条语句可以用分号或斜杠(/)结束,也可用RUN命令执行。 2. **数学运算**:在SQL中,你可以对数值或日期字段执行加减乘除等运算,运算符的优先级遵循标准的数学规则。 3. **别名ALIASES**:别名允许为列赋予一个...

Global site tag (gtag.js) - Google Analytics