如何在plsql中执行存储过程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在plsql中执行存储过程相关的知识,希望对你有一定的参考价值。

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执行动态语句才可以 还有执行存储过程,必须在命令窗口内执行 参考技术A 先定义包规范:create or replace package zhidao_pkg astype t_RetSet is REF CURSOR;procedure test_proc (Condition1 varchar2,Condition2 varchar2,Condition3 varchar2,Condition4 varchar2,r_Cursor out t_RetSet,status out int);end zhidao_pkg;包体创建create or replace package body zhidao_pkg isprocedure test_proc (Condition1 varchar2,Condition2 varchar2,Condition3 varchar2,Condition4 varchar2,r_Cursor out t_RetSet,status out int) as begin .end zhidao_pkg;调用:SQL> var cur refcursorSQL> var stas intSQL> exec test(10,:cur,:stas)PL/SQL 过程已成功完成。SQL> print :curSQL> print :stas希望对你有帮助,有问题再追问吧,望采纳。

我用plsql创建的存储过程为啥是无效的?

我用plsql为oracle创建了一个存储过程 而且创建成功了
CREATE OR REPLACE PROCEDURE test
is
begin
select * from ccdust.class;
end;
我用
exec test; 调用这个存储过程却显示无效sql语句 然后我在左边导航栏里存储过程中找到test点右键选择测试 结果弹出 test is invalid

这是怎么回事

你在编写完存储过程后,有没有打“\”这是代表预编译这个存储过程,然后你在打
exec test试试
参考技术A 过程里的语句有问题、
是不是表有问题?
还是你当前的用户没有调用过程的权限本回答被提问者和网友采纳
参考技术B 你用java调用执行吧,我也是遇到这个问题,jaa调用可以,plsql就不行

以上是关于如何在plsql中执行存储过程的主要内容,如果未能解决你的问题,请参考以下文章

我用plsql创建的存储过程为啥是无效的?

sql如何批量进行执行存储过程并传参数?

存储过程拼接了两个sql,如何执行;

如何使用plsql导出oracle数据建表语句,存储过程,视图.以及表中数据

MySQL存储过程显示出一条sql执行用时?

在PLSQL中,存储过程的输出参数最大支持多大