`

sqlplus中define定义的常量和variable定义的变量的区别

 
阅读更多
define相当于定义一个字符常量,通过define定义之后,在通过&或者&&引用的时候不需要输入了。oracle在执行的时候自动用值进行了替换;
variable定义的是绑定变量。

(1) define

SQL> alter session set nls_language = american;

Session altered.

SQL> define
DEFINE _DATE = "03-OCT-09" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "myoracle" (CHAR)
DEFINE _USER = "SCOTT" (CHAR)
DEFINE _PRIVILEGE = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1002000100" (CHAR)
DEFINE _EDITOR = "Notepad" (CHAR)
DEFINE _O_VERSION = "Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options" (CHAR)
DEFINE _O_RELEASE = "1002000100" (CHAR)
SQL>

SQL> define a
SP2-0135: symbol a is UNDEFINED
SQL> define a = 1
SQL>
SQL> define
DEFINE _DATE = "03-OCT-09" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "myoracle" (CHAR)
DEFINE _USER = "SCOTT" (CHAR)
DEFINE _PRIVILEGE = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1002000100" (CHAR)
DEFINE _EDITOR = "Notepad" (CHAR)
DEFINE _O_VERSION = "Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options" (CHAR)
DEFINE _O_RELEASE = "1002000100" (CHAR)
DEFINE A = "1" (CHAR)

SQL> select * from dept where deptno = &a;
old 1: select * from dept where deptno = &a
new 1: select * from dept where deptno = 1

no rows selected

SQL>
SQL> column dname new_value a
SQL> select * from dept;

DEPTNO DNAME LOC ID
---------- -------------- ------------- ----------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON

SQL> define
DEFINE _DATE = "03-OCT-09" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "myoracle" (CHAR)
DEFINE _USER = "SCOTT" (CHAR)
DEFINE _PRIVILEGE = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1002000100" (CHAR)
DEFINE _EDITOR = "Notepad" (CHAR)
DEFINE _O_VERSION = "Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options" (CHAR)
DEFINE _O_RELEASE = "1002000100" (CHAR)
DEFINE A = "OPERATIONS" (CHAR)
SQL>
SQL> select * from dept where dname = &a;
old 1: select * from dept where dname = &a
new 1: select * from dept where dname = OPERATIONS
select * from dept where dname = OPERATIONS
*
ERROR at line 1:
ORA-00904: "OPERATIONS": invalid identifier

SQL> select * from dept where dname = '&a';
old 1: select * from dept where dname = '&a'
new 1: select * from dept where dname = 'OPERATIONS'

DEPTNO DNAME LOC ID
---------- -------------- ------------- ----------
40 OPERATIONS BOSTON

SQL> define a
DEFINE A = "OPERATIONS" (CHAR)
SQL>
SQL> print a
SP2-0552: Bind variable "A" not declared.

(2) variable

SQL> variable a number;
SQL> print a;

A
----------

SQL> exec :a := 10;

PL/SQL procedure successfully completed.

SQL> print a;

A
----------
10

SQL> select * from dept where deptno = :a ;

DEPTNO DNAME LOC ID
---------- -------------- ------------- ----------
10 ACCOUNTING NEW YORK
分享到:
评论

相关推荐

    在SQLPlus中改变字体和字符集

    在 SQLPlus 中改变字体和字符集 摘要:本文主要介绍了在 SQLPlus 中改变字体和字符集的方法,对于 Oracle 数据库管理员来说,这是一项非常重要的技能。通过对注册表的修改,可以改变 SQLPlus 中的字体大小和字符集...

    sqlplus环境变量.docsqlplus环境变量.doc

    SQL*PLUS 是Oracle数据库系统中的一个命令行工具,用于与数据库进行交互,执行SQL语句和PL/SQL块。在SQL*PLUS环境中,有一系列的系统变量,也称为SET变量,它们可以用来调整用户界面、输出格式以及查询行为。通过...

    SQLPLUS命令查询文档

    6. **变量与 substitution**:SQLPLUS允许用户定义变量,如`ACCEPT variable_name PROMPT 'Prompt text'`,并使用`&variable_name`来引用。`DEFINE`命令可以设置和查看变量。 7. **脚本控制**:`WHENEVER OSERROR`...

    sqlplus中文插件

    4. 配置环境变量:安装完成后,可能需要更新系统环境变量,将SQLPlus插件添加到PATH中,以便系统能够找到并加载它。 5. 测试插件:重启SQLPlus,检查是否成功安装了中文插件。如果界面和输出已变为中文,则表示安装...

    SQLPlus中的复制和粘贴技巧

    在SQLPlus中,复制和粘贴是日常操作的一部分,尤其对于数据库管理员和开发人员来说,高效地处理SQL脚本和查询结果至关重要。SQLPlus虽然不如图形化的数据库管理工具直观,但通过掌握一些实用技巧,我们可以提高在该...

    sqlplus中批量执行sql文件

    注意,目录路径中不要包含空格,这是因为操作系统和SQLPlus命令行工具可能无法正确解析包含空格的路径。 2. **获取SQL文件列表**:使用DOS命令`dir`来获取该目录下的所有SQL文件的名称和路径。如果对DOS命令不熟悉...

    PLSQL绑定变量用法小结归纳.pdf

    例如,在SQLPLUS中,可以通过VARIABLE命令来定义绑定变量。下面是一个简单的示例: SQL> variable i number; SQL> exec :i :=1; PL/SQL 过程已成功完成。 SQL> select *from tt where id=:i; 在上面的示例中,我们...

    SQLPlus命令使用大全PDF

    `DEFINE`命令可以定义变量,`Prompt`改变SQLPlus提示符: ``` DEFINE var = 'value' PROMPT &var ``` 9. **批处理和循环**: 使用`ACCEPT`命令接受用户输入,`WHILE`和`BEGIN-END`实现循环: ``` ACCEPT ...

    ORACLE SQLPLUS 命令大全

    * DEFINE:用于定义报表的变量 * DEL:用于删除报表的行 * DESCRIPTOR:用于描述报表的结构 * DISCONNECT:用于断开数据库连接 * EDIT:用于编辑报表的内容 * EXECUTE:用于执行报表的语句 * GET:用于获取报表的...

    sqlplus教程(中文)

    本教程旨在详细介绍SQLPlus的使用方法以及SQL语言在Oracle环境中的应用技巧。 一、SQLPlus的基础操作 1. 启动与退出:在命令行界面输入`sqlplus 用户名/密码@连接标识`启动SQLPlus,如`sqlplus scott/tiger@orcl`...

    oracle中的sqlplus基础教程

    Oracle中的SQL*Plus是Oracle数据库管理系统提供的一种...通过设置环境参数、利用变量和格式化命令,可以定制化查询输出,提高工作效率。在实践中不断探索和掌握这些技巧,将有助于提升在Oracle数据库操作上的专业技能。

    Oracle中常用的SqlPlus命令

    以上仅是SqlPlus中部分常用命令的概述,这些命令在Oracle数据库的日常管理和开发工作中扮演着重要角色。熟练掌握它们,不仅能提高工作效率,还能在复杂的数据处理任务中游刃有余。未来,在更深入的学习与实践中,你...

    Orcle的SQLplus语句详解.doc

    SQLplus 中可以定义变量,例如交互命令与替代变量不同,绑定变量用“:”引用,且定义时用 VAR 标记,要用 exec 执行才能对绑定变量输入值。 环境变量 SQLplus 中可以设置和显示环境变量,例如 SET PAUSE ON|OFF|...

    Oracle SQLPlus最新手册

    掌握如何在SQLPlus中输入和执行SQL、SQLPlus和PL/SQL命令,是进行有效数据库操作的基础。 ### 命令的操纵 学会如何灵活操作SQLPlus中的各种命令,包括编辑、保存和调用历史记录等。 五、结果格式化与数据库访问 ...

    sqlplus常用命令参数

    Sqlplus 提供了 %rowtype 属性来声明记录变量和其他结构。例如,使用 `declare` 命令可以声明一个名为“utype”的记录变量,例如 `declare utype users%rowtype; begin select * into utype from users where id=20;...

    SQLPlus命令使用大全

    - 该命令用于显示当前SQLPlus环境中的各种设置和变量值。 - **示例:** 若要查看当前设置,可以使用`show`命令。 23. **查询对象** - **命令:** `select * from all_objects where owner = 'SCOTT'` - 该命令...

    sqlplus常用 命 令

    - **`define`**:通过`define`命令可以定义局部变量,并在后续的SQL语句中引用。例如,`define a='''2000010112:01:01'''`定义了一个变量`a`,其值为日期时间字符串。在查询中使用`&a`即可引用该变量。 #### 3. ...

    SQLPLUS 手册

    8. **提示符和变量**:SQLPLUS允许定义变量并用它们在查询中,使用`ACCEPT`命令可以接收用户输入。 9. **报表生成**:通过`RUN`命令,结合外部程序(如`awk`或`sed`),可以自定义生成报表格式。 10. **系统管理**...

    sqlplus日期格式和中文乱码解决文.pdf

    SQLplus 日期格式和中文乱码解决方法 在数据库中查询数据时,我们经常会遇到日期时间格式的问题,例如显示语言、显示格式等。这可能是因为数据库中存储的格式是YYYY-MM-DD HH24:MI:SS,但是查询出来的却是22-1月-10...

    Sqlplus_登录数据库

    在 Sqlplus 中,用户可以使用各种命令来管理和维护 Oracle 数据库,例如查询数据、创建表、修改数据等。Sqlplus 是 Oracle 数据库管理系统中的一种强大工具,广泛应用于数据库管理员和开发人员。 在实际应用中,...

Global site tag (gtag.js) - Google Analytics