在存储过程中对DML语句使用EXECUTE IMMEDIATE



我是PL SQL过程的新手,我们在存储过程的执行部分有这行代码。

我在这里有一个查询,请告诉我在这里使用DML语句的EXECUTE IMMEDIATE的用途是什么?在什么情况下我们应该使用EXECUTE IMMEDIATE ?

v_update_query2 := 'INSERT INTO '||p_country||'.DETAILS ( ID, STATUS, DEST_SYSTEM, OUT_TIME ) VALUES ('''
    ||v_txn_id ||''','||'''T081'''||','||'''CLEARING'''||', SYSDATE)';

EXECUTE IMMEDIATE v_update_query1 ;

EXECUTE IMMEDIATE是对模式对象(如表名、列名等)进行变量引用的唯一方法。

它允许您构建任何字符串,然后将该字符串作为SQL语句执行。
没有它,过程变量只能用于sql中的值,例如select * from table where column = my_variable

在您的示例中,表名p_country变量提供—这是一个模式元素,因此您需要EXECUTE IMMEDIATE

相关内容

  • 没有找到相关文章

最新更新