请教一个关于存储过程调用的问题 试试dbms_sql.parse (v_cursorid,'exec '||v_user_name||'.'||v_procedure_name,dbms_sql.native) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1;你的方法应该行的通,可能出错原因是你没有给当前用户授于足够的权限。你应当把可能用到的其它用户的表都授于该用户足够的操作权限。2:另外你可以先定义一个字符串变量。把该构造好的SQL语句赋给该字符串变量,然后在dbms_sql.parse(v_cursorid,字符串变量,dbms_sql.native)语句中用。3:或者你也可以用EXECUTE IMMEDIATE TRIM(字符串变量)来执行,从理论上讲这种方法要快于上边的方法。 以上方法都因改不可以,因为我试验了一下execute immediate 不支持存储过程。 14:54:55 jlanzpa817>CREATE OR REPLACE PROCEDURE copy IS 14:54:56 2 id_var NUMBER; 14:54:56 3 source_cursor INTEGER; 14:54:56 4 ignore INTEGER; 14:54:56 5 BEGIN 14:54:56 6 source_cursor := dbms_sql.open_cursor; 14:54:56 7 DBMS_SQL.PARSE(source_cursor, 14:54:56 8 'begin demo.hello; end;', 14:54:56 9 DBMS_SQL.native); 14:54:56 10 ignore := DBMS_SQL.EXECUTE(source_cursor); 14:54:56 11 DBMS_SQL.CLOSE_CURSOR(source_cursor); 14:54:56 12 END; 14:54:56 13 /过程已创建。已用时间: 00: 00: 00.7014:54:57 jlanzpa817>exec copy helloPL/SQL 过程已成功完成。 wrap命令是在哪里执行的啊,在SQLPLUS还是操作系统的CMD还是哪里 精通oracle函数的进来看看 Oracle 如何这样分区? 请高手帮帮忙 触发器中的变量表名 sequence 重置问题 请问各位高手:是否可以用oracle8 的客户端连接oracle10的数据库? oracle 里怎样把所有表查出来? 请问各位老师oracle有没有类似于server sql 2000数据库复制技术 实现数据同步更新的功能? 如何从已知从表的记录反查主表的记录(主从表间有多条对应关系) 存储过程的调试? 请问在oracle中怎么锁表?
2:另外你可以先定义一个字符串变量。把该构造好的SQL语句赋给该字符串变量,然后在dbms_sql.parse(v_cursorid,字符串变量,dbms_sql.native)语句中用。
3:或者你也可以用EXECUTE IMMEDIATE TRIM(字符串变量)来执行,从理论上讲这种方法要快于上边的方法。
execute immediate 不支持存储过程。
14:54:56 2 id_var NUMBER;
14:54:56 3 source_cursor INTEGER;
14:54:56 4 ignore INTEGER;
14:54:56 5 BEGIN
14:54:56 6 source_cursor := dbms_sql.open_cursor;
14:54:56 7 DBMS_SQL.PARSE(source_cursor,
14:54:56 8 'begin demo.hello; end;',
14:54:56 9 DBMS_SQL.native);
14:54:56 10 ignore := DBMS_SQL.EXECUTE(source_cursor);
14:54:56 11 DBMS_SQL.CLOSE_CURSOR(source_cursor);
14:54:56 12 END;
14:54:56 13 /过程已创建。已用时间: 00: 00: 00.70
14:54:57 jlanzpa817>exec copy
helloPL/SQL 过程已成功完成。