Chinaunix首页 | 论坛 | 博客
  • 博客访问: 539463
  • 博文数量: 65
  • 博客积分: 1158
  • 博客等级: 少尉
  • 技术积分: 1261
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-18 22:07
文章分类

全部博文(65)

文章存档

2016年(1)

2014年(2)

2013年(9)

2012年(53)

分类: Oracle

2012-12-04 20:06:47

1.使用start或者@运行脚本并且传递参数
SQL> host cat /home/oracle/test/sqlplustest.sql        
set verify off
column ename heading '姓名'
column sal   heading '工资' format L99,999
select ename,sal from emp
where  deptno = &1 and job = '&2';
column ename clear
column sal   clear
set verify on

SQL> @/home/oracle/test/sqlplustest.sql 20 CLERK

姓名                  工资
---------- -----------------
SMITH                   $800
ADAMS                 $1,100


2.使用accept和prompt,accept定义替代变量的时候可以指定prompt提示符
SQL>  host cat /home/oracle/test/sqlplustest2.sql
set verify off
accept name prompt '输入用户名:'
select job,sal from emp where ename = '&name';
set verify on;

SQL> @/home/oracle/test/sqlplustest2.sql
输入用户名:SCOTT

JOB              SAL
--------- ----------
ANALYST         3000

3.使用绑定变量
SQL> var var1 varchar2(20)
SQL> exec :var1 := 'Hello,World!'
 
PL/SQL procedure successfully completed
var1
---------
Hello,World!
SQL> print var1
var1
---------
Hello,World!

4.使用refcursor绑定变量
SQL> var emp_cursor REFCURSOR
SQL> begin 
  2     open :emp_cursor for select ename,sal from emp where deptno = 10;
  3  end;
  4  /

PL/SQL procedure successfully completed.

SQL> print emp_cursor

ENAME             SAL
---------- ----------
CLARK            2450
KING             5000
MILLER           1300

--注意上面我只在sqlplus下测试成功了,在pl/sql develop的command下没有执行成功,可能是版本问题,造成不能识别refcursor类型

阅读(4206) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~