PL/SQL 基础
2013-06-04 00:00
127 查看
1. 输出设置
DBMS_OUTPUT.PUT_LINE('XXX'); 无显示
原因是 SQLPLUS 需要设置 SET SERVEROUT[ PUT ] ON | OFF
SET SERVEROUTPUT ON SIZE 10000 (
缓冲区支持字符个数,最大
100
万
)
每次登陆都要设置,也可固化设置:
将设置命令追加到
%ORACLE_HOME%/sqlplus/admin目录下有glogin.sql文件末尾,SQLPLUS连接后会自动执行该脚本
2. 脚本中变量
A. 替换变量
变量前加一个&符号,sqlplus在命令中遇到替换变量时,用真实值去代替,相当于c语言中的宏定义。真实值来源于三个地方:
1) 脚本参数带入
2) 脚本中直接定义
3) 用户动态输入
如:
SQL> select &num from dual;
输入 num 的值: sysdate
原值 1: select &num from dual
新值 1: select sysdate from dual
SYSDATE
--------------
02-11月-12
sqlplus中有几个环境参数将影响替换变量:
SQL> set define off (off表示关闭替换变量功能)
SQL> select &num from dual;
SP2-0552: 未声明绑定变量 "NUM"
脚本带参数
d:\123.sql文件内容:
select * from dept d where d.deptno=&1;
执行:
SQL> @d :\123.sql 10
原值 1: select * from dept d where d.deptno=&1
新值 1: select * from dept d where d.deptno=10
DEPTNO DNAME LOC
---------- -------------- ------------
10 ACCOUNTING NEW YORK
脚本中定义
SQL> define str='Hello World'
SQL> select '&str' from dual;
原值 1: select '&str' from dual
新值 1: select 'Hello World' from dual
'HELLOWORLD
-----------
Hello World
注意:
一般情况下在sqlplus下,执行sql语句时或脚本时,对&字符需要特殊处理一下,因为它是sqlplus中的特殊字符
交互输入
有些信息根据脚本的提示,让用户动态输入,从而在下面的sql语句中使用。
语法为:accept var_name typename prompt ‘hint’ [hide]
说明:hide表示以密文方式让用户输入。typename只能是char,number,date三种
SQL> accept name char prompt '请输入名字:'
请输入名字:scott
SQL> accept passwd char prompt '请输入密码:' hide
请输入密码:
SQL> conn &name/&passwd
已连接。
DBMS_OUTPUT.PUT_LINE('XXX'); 无显示
原因是 SQLPLUS 需要设置 SET SERVEROUT[ PUT ] ON | OFF
SET SERVEROUTPUT ON SIZE 10000 (
缓冲区支持字符个数,最大
100
万
)
每次登陆都要设置,也可固化设置:
将设置命令追加到
%ORACLE_HOME%/sqlplus/admin目录下有glogin.sql文件末尾,SQLPLUS连接后会自动执行该脚本
2. 脚本中变量
A. 替换变量
变量前加一个&符号,sqlplus在命令中遇到替换变量时,用真实值去代替,相当于c语言中的宏定义。真实值来源于三个地方:
1) 脚本参数带入
2) 脚本中直接定义
3) 用户动态输入
如:
SQL> select &num from dual;
输入 num 的值: sysdate
原值 1: select &num from dual
新值 1: select sysdate from dual
SYSDATE
--------------
02-11月-12
sqlplus中有几个环境参数将影响替换变量:
SQL> set define off (off表示关闭替换变量功能)
SQL> select &num from dual;
SP2-0552: 未声明绑定变量 "NUM"
脚本带参数
d:\123.sql文件内容:
select * from dept d where d.deptno=&1;
执行:
SQL> @d :\123.sql 10
原值 1: select * from dept d where d.deptno=&1
新值 1: select * from dept d where d.deptno=10
DEPTNO DNAME LOC
---------- -------------- ------------
10 ACCOUNTING NEW YORK
脚本中定义
SQL> define str='Hello World'
SQL> select '&str' from dual;
原值 1: select '&str' from dual
新值 1: select 'Hello World' from dual
'HELLOWORLD
-----------
Hello World
注意:
一般情况下在sqlplus下,执行sql语句时或脚本时,对&字符需要特殊处理一下,因为它是sqlplus中的特殊字符
交互输入
有些信息根据脚本的提示,让用户动态输入,从而在下面的sql语句中使用。
语法为:accept var_name typename prompt ‘hint’ [hide]
说明:hide表示以密文方式让用户输入。typename只能是char,number,date三种
SQL> accept name char prompt '请输入名字:'
请输入名字:scott
SQL> accept passwd char prompt '请输入密码:' hide
请输入密码:
SQL> conn &name/&passwd
已连接。
相关文章推荐
- PL/SQL学习笔记[1]-基础
- oracle PL\SQl基础 变量的使用
- PL/SQL1——语言基础
- pl/sql编程基础
- pl*sql基础(三)之函数
- oracle PL/SQL语法基础
- Oracle PL/SQL开发基础(第二十六弹:游标变量)
- Oracle 10G -- Pl/sql 基础
- PL/SQL编程基础
- ORACLE PL/SQL 基础
- PL/SQL --> 语言基础
- PL/SQL基础知识1(复合变量,异常处理)
- pl/sql基础知识学习笔记(二)
- PL/SQL基础语法
- PL/SQL 基础---匿名块
- Oracle PL/SQL 基础
- PL/SQL developer基础语法学习(二)之语法
- PL/SQL 基础( 上 )
- Oracle PL/SQL开发基础(第二十一弹:基本函数)
- PL/SQL基础知识讲解之游标 (CURSOR)