ChinaUnix.net
相关文章推荐:

Execute immediate 权限不足

一个 execute immediate 'create table t_test as select * from t_data where 1=2 '; 在sqlplus 中可以执行,但是 放到 存储过程中执行却报 ORA-01031: 权限不足 ORA-06512: 在"***", line ** 请问 在存储过程里执行这个需要什么权限

by cklea - Oracle - 2004-05-28 16:22:20 阅读(2020) 回复(3)

相关讨论

oracle的execute immediate可以动态执行sql语句。下面总结一下这一语句的用法:

1. execute immediate不会自动提交DML事务执行,需要显式提交或者作为execute immediate语句的一部分。(参考如下代码)

  1. SQL>

by 3legcat - Oracle - 2011-12-22 08:54:02 阅读(1031) 回复(0)

sqlstr:='create table aa(name varchar(10)); execute immediate 'insert into bb values(sqlstr)'; 能行吗? 假设bb表也只有一个字段strsql varchar(1000)类型的

by cxmzy - Oracle - 2007-01-09 10:16:37 阅读(859) 回复(0)

SQL:SELECT F1 INTO :V_F1 FROM TAB1 在C中使用execute immediate,该如何写? sprintf(buf,"select F1 from tab1"); execute immediate :buf ......

by kmyangyl - Oracle - 2006-11-08 15:51:31 阅读(856) 回复(0)

现在我的ORACLE用不了execute immediate 请问是什么原因。 以前我是可以用的。因为我现在要在一个SQL文件中执行多条SQL语句。 比如CREATE TABLE 用了execute immediate 我可以在一个SQL文件中执行多条CREATE TABLE语句了。如果各位有其它方法不妨指教一下。

by carrierye - Oracle - 2003-02-19 21:02:55 阅读(1563) 回复(3)

SQL:SELECT F1 INTO :V_F1 FROM TAB1 在C中使用execute immediate,该如何写? sprintf(buf,"select F1 from tab1"); execute immediate :buf ......

by kmyangyl - C/C++ - 2006-11-08 20:29:52 阅读(1031) 回复(1)

SQL> declare 2 v_start varchar2(20); 3 v_end varchar2(20); 4 v_sql varchar2(2000); 5 begin 6 v_start:='2012-03-22 00:00:00'; 7 v_end:='2012-03-31 00:00:00'; 8 v_sql:='insert into QingQiuRenGong(callerno,usertype,waitbegin) 9 select callerno,usertype,waitbegin from t_bill_log03 where waitbegin>=to_date('||v_start||',''yyyy-mm-dd hh24:mi:ss'') 10 and wai...

by Samdy_Chan - Oracle - 2012-03-31 16:27:17 阅读(1644) 回复(0)

execute immediate 执行动态sql execute immediate代替了以前Oracle8i中DBMS_SQL package包.它解析并马上执行动态的SQL语句或非运行时创建的PL/SQL块.动态创建和执行SQL语句性能超前,execute immediate的目标在于减小企业费用并获得较高的性能,较之以前它相当轻易编码.尽管DBMS_SQL仍然可用,      但是推荐使用execute immediate,因为它获的收益在包之上。   使用技巧   1. execute immediate将不会提交一个DM...

by 中关村村草 - Veritas技术交流区 - 2012-03-15 17:16:49 阅读(1033) 回复(1)

create or replace procedure jzf_p_khjlkh is sqlstmt varchar2(1000); begin sqlstmt := 'alter table htgl.cust_vip_531_bak add staff_name varchar2(30)'; execute immediate sqlstmt; end jzf_p_khjlkh; 报错,不知道是怎么回事。Compilation errors for PROCEDURE HTGL.JZF_P_KHJLKH Error: PLS-00103: Encountered the symbol "immediate" when expecting one of the following: := . ( @ %...

by redrain0818 - Oracle - 2003-12-07 15:26:30 阅读(904) 回复(2)

int main(void) { EXEC SQL BEGIN DECLARE SECTION; char szSql[1000]; char col1[100]; EXEC SQL END DECLARE SECTION; ..... strcpy(szSql, "DELETE FROM feng_test7 WHERE col1 = 'a'"); //strcpy(col1, "d"); EXEC SQL execute immediate :szSql; .... } 上面程序不会报错,执行成功。 但是下面proc就会报错: int main(void) { EXEC SQL BEGIN DECLARE SECTION; char szSql[1000]; char col1[100]; EXEC SQL END DECLARE SE...

by ice2000feng - C/C++ - 2013-11-26 12:36:51 阅读(1956) 回复(2)

create or replace procedure cc as v_sql varchar2(100) := ''; begin for i in 33 .. 44 loop v_sql := 'create table test_'|| i || '(v_val varchar2(2))'; dbms_output.put_line(v_sql); execute immediate v_sql; end loop; end; 这个procedure是我参考别人的写的,execute immediate v_sql; 这句话我不明白有什么用处?而且上面这个procedure执行到execute immediate v_sql; 这一句的时候就退出来了。这个是...

by counter1219 - Oracle - 2013-01-15 17:59:27 阅读(1469) 回复(1)