oracle环境下在dos中使用编译sql脚本执行存储过程的方法

首先说如何编译扩展名为sql的sql脚本.

sqlplus system/admin@orcl @D:\P_CREATE_TABLE.sql

这样就可以了。需要注意的是这样的做法只是在服务器上编译和生成了这个脚本,并不是执行了这个脚本中的内容。

需要注意的是1.要在语句的最后加上一个/符号,否则不会执行。2.需要写全脚本的路径。3.可以用@@来代替,这个条件是执行的脚本需要在当前路径下。

脚本例子如下:

CREATE OR REPLACE PROCEDURE P_CREATE_TABLE(TABLENAME IN VARCHAR2) AS
BEGIN
  EXECUTE IMMEDIATE 'CREATE TABLE ' || TABLENAME || ' (A INT)';
END;
/

 

如果想执行编译后的脚本,比如想执行存储过程,同时有一个参数,该怎么编写脚本呢?

BEGIN
  CREATE_TABLE ('&1');
END;
/

参数使用&1、&2这样来代替,以上脚本另存为扩展名为sql的脚本,比如CREATE_TABLE.SQL

在DOS中以上脚本的执行:

sqlplus system/admin@orcl @D:\CREATE_TABLE.sql TableName1

 

如果存储过程同时有输入参数也有输出参数,这又要怎么执行呢?

DECLARE

  P_O INTEGER

BEGIN
  CREATE_TABLE (P_O,'&1');
END;
/

在脚本中这样写就可以了。

 

转载于:https://www.cnblogs.com/wbzhao/archive/2012/03/31/2427317.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值