execute-immediate相关内容
基于 这个答案 我试图创建临时表,但是我收到异常 ORA-00942:table or view does not exist 我认为 'CREATE OR REPLACE GLOBAL TEMPORARY TABLE TempQandA(column1 number) ON COMMIT PRESERVE ROWS 有问题' 语句,它在 insert into TempQandA(column1
..
我在使用存储过程中的立即执行命令创建表时遇到问题.但是我收到“权限不足"的错误.我检查了其他线程并确保用户具有授予它的“CREATE TABLE"权限.但是我仍然看到同样的错误. SQL>从 USER_SYS_PRIVS 中选择 *;用户名权限 ADM------------------------------ -----------------------------------------
..
我是一名 SQL Server 用户,我有一个使用 Oracle 的小项目,所以我试图了解 Oracle 的一些特殊性,我认为我需要一些帮助才能更好地了解以下情况: > 我想在创建临时表之前测试它是否存在,所以我在这里有这个代码: DECLAREtable_count 整数;var_sql VARCHAR2(1000) := '创建全局临时表测试(你好 varchar(1000) NOT N
..
我有一个关于在 PL/SQL 中的动态 SQL 语句中可以在哪里使用绑定变量的问题. 例如,我知道这是有效的: CREATE OR REPLACE FUNCTION get_num_of_employees (p_loc VARCHAR2, p_job VARCHAR2)退货号码是v_query_str VARCHAR2(1000);v_num_of_employees NUMBER;开始
..
我正在尝试使用绑定变量在动态 SQL 中执行 SQL 命令: --这个程序是PL/SQL包Test_Pkg的一部分PROCEDURE Set_Nls_Calendar(calendar_ IN VARCHAR2)是开始立即执行'更改会话SET NLS_CALENDAR = :cal'在日历中使用_;END Set_Nls_Calendar; 然后在客户端,我试图调用该过程: Test_Pkg
..
DECLAREmax_id 整数;开始SELECT MAX(ID) + 1 INTO max_id FROM MY_TABLE;EXECUTE IMMEDIATE 'CREATE SEQUENCE MY_TABLE_ID MINVALUE 1 MAXVALUE 99999999999999 INCREMENT BY 1 START WITH ' ||max_id ||'缓存 100 NOORDER
..
我在动态呼叫存储过程中遇到问题 v_sql:='开始'||p_procname ||'(''test1'',''test2'',:v_output2);结尾;';执行立即v_sql使用v_output2;dbms_output.put_line(v_output2 ||''); 在这里ı可以调用带有execute立即执行的过程.但是我的问题是动态绑定变量.此值来自日志表,然后我为execu
..
伙计! 我需要一些解决以下问题的想法: 我有两个表: 表1: +-------+------------+---------+ | ID | field_name | value | +-------+------------+---------+ | 1 | usd | 10.08 | | 1 | gross_amt | 5
..
在上一篇文章中,请参见此处: 我有两个表和以下问题: 表1: +-------+------------+---------+ | ID | field_name | value | +-------+------------+---------+ | 1 | usd | 10.08 | | 1 | gross_amt | 52.0
..
我想为行类型的字段分配一个值,但是我不知道该怎么做. 假设我的数据库中有一个表 X . 还假设我具有以下变量 a(X%ROWTYPE),代表表X的一行 b(VARCHAR2),其中包含表X的列名 c(VARCHAR2),其中包含我要存储在a.b中的内容 我想做什么:类似于a.b := c. 我想出了类似这样的东西: EXECUTE IMMEDIATE 'SE
..
我在使用存储过程中的execute Instant命令创建表时遇到问题.但是,我得到“权限不足"的错误.我检查了其他线程,并确保用户具有授予它的“创建表"特权.但是我仍然看到相同的错误. SQL> select * from USER_SYS_PRIVS; USERNAME PRIVILEGE
..
动态SQL更新语句如下: EXECUTE IMMEDIATE 'UPDATE '||l_prefix||'CRS_CUSTOMERS SET CUSTOMER_SOURCE_REF_ID = '||i.CUSTOMER_REF_ID||' WHERE CUSTOMER_ID = '||i.CUSTOMER_ID; l_prefix是保留表名前缀的参数,分配的值为T_ i.CUSTOME
..
当我为execute immediate构建动态SQL语句时,我想使用绑定变量而不是字符串连接. 在下面的示例中,我可以为a,b和ret使用绑定变量,但是当我尝试为f绑定时,得到ORA-06502: PL/SQL: numeric or value error: character to number conversion error.为什么也可以绑定f? 我正在使用11.2.0.1.
..
我想在ref_cursor中获得结果,但是我无法做到这一点. 请建议我如何使用立即执行在ref_cursor中获取结果 CREATE OR REPLACE PROCEDURE TEST_PROC_QT ( p_name IN VARCHAR2, p_result_set OUT sys_refcurs
..
我想在流水线函数中执行动态查询并返回此查询的结果. 是否有可能做到这一点? 流水线函数对于我的应用程序来说很方便,因为它的行为就像表一样,可以为我的应用程序提供良好的界面. 功能: CREATE OR REPLACE FUNCTION MyFunction(p_schema VARCHAR2) RETURN MyTableType Pipelined IS v_query VARCHA
..
请假设我在表ALPHA内的CLOB类型的BETA列中有一个包创建脚本. CLOB长度> 32767个字符. 我想使用PL/SQL代码“立即执行"程序包创建脚本. 我可以实现吗? 在此先感谢您的帮助. 我正在使用Oracle 10G 解决方案 execute immediate不支持CLOB 解析CLOB . 有一个示例此处. 动态创建程序包似乎是一个奇怪
..
基于此答案,我试图创建临时表,但是我遇到异常ORA-00942:table or view does not exist,我认为'CREATE OR REPLACE GLOBAL TEMPORARY TABLE TempQandA(column1 number) ON COMMIT PRESERVE ROWS'语句有问题,在insert into TempQandA(column1) VALUES
..
我在Oracle中遇到了一个小问题.我尝试创建一个序列来在已经有数据的表中生成ID.我尝试使用以下匿名块. declare y varchar2(2000); BEGIN SELECT 'CREATE SEQUENCE ID_SEQ MINVALUE 1 MAXVALUE 9999999999 START WITH ' || (max(ID)+1) || ' INCREMENT BY 1
..
我被困在这个非常简单的脚本上.它没有按我预期的那样工作. declare st VARCHAR(1024); begin for x in (SELECT sequence_name FROM USER_SEQUENCES) loop st := 'ALTER SEQUENCE ' || x.sequence_name || ' INCREMENT BY 1000';
..
我是SQL Server用户,并且我有一个使用Oracle的小项目,因此,我试图了解Oracle的某些特殊性,我认为我需要一些帮助以更好地了解以下情况: 我想在创建临时表之前测试它是否存在,所以在这里有以下代码: DECLARE table_count INTEGER; var_sql VARCHAR2(1000) := 'create GLOBAL TEMPORARY table
..