knrt.net
当前位置:首页 >> plsql DEvElopEr 里怎么写存储过程,和执行存储过... >>

plsql DEvElopEr 里怎么写存储过程,和执行存储过...

--建立测试数据:create table BOOK(编号 number(10),书名 varchar2(20),价格 varchar2(20)) insert into BOOK values(100,'aa','88.77') select * from BOOK--建立存储过程:create or replace procedure query_BOOK(name IN OUT NUMBER,

create or replace procedure job_table as v_sql varchar2(2000); begin v_sql:='create table job_test2 as select * from job_test'; EXECUTE immediate v_sql; EXCEPTION WHEN OTHERS THEN rollback; end job_table; 存储过程内不能直接使用create或alter,需要使用EXECUTE执行动态语句才可以 还有执行存储过程,必须在命令窗口内执行

在plsql developer中sql窗口中,输入你的那个存储过程的名字,然后按住ctrl键,用鼠标点击过程名字,就看到过程的远代码了,后续你的操作,你懂的

在新建commandwindow里输入exec 存储过程名 回车

执行方法begin 存储过程名(参数1,参数2);--参数间用逗号隔开,字符型的要加单引号,数字型的直接输入,结尾带分号end;--结尾带分号

create or replace procedure job_table asv_sql varchar2(2000);begin v_sql:='create table job_test2 as select * from job_test'; execute immediate v_sql; exception when others then rollback;end job_table; 存储过程内不能直接使用create或alter,需要使用execute执行动态语句才可以还有执行存储过程,必须在命令窗口内执行

过程没有创建成功,语句有问题,首先select *可能导致多值,得用游标其次过程语句与一般sql语句不同,以SELECT XX INTO XX from XX形式,你都没有into语句,这句话本身就有问题.

把AS换成IS试试

如果是在plsql developer中修改的,可以直接点那个齿轮图标,或者F8即可编译.如果是在sqlplus中,那就敲入修改后的过程代码(create or replace procedure),最后以/结尾运行即可.

一样的,等于在package里建一个存储过程,这个存储过程中有很多个小函数,然后你想调用哪个就调用哪个啊,举个例子,在package里建一个存储过程js_commonCREATE OR REPLACE PACKAGE BODY JS_COMMON在这个存储过程里建小函数,如procedure other_com isend;在其他存储过程中调用这个的话,就是js_common.other_com()括号里填入参.

网站首页 | 网站地图
All rights reserved Powered by www.knrt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com