Moh*_*shi 0 oracle plsql dynamic-sql
我有一个执行立即的查询字符串.
我怎么能执行立即这个PL/SQL?
query string ='执行立即选择....';
想要这样做: Execute immediate 'query string';
这变成了: Execute immediate 'Execute immediate select ....;';
你知道我怎么能这样做?
没有评论是正常还是明智:是的,我相信你可以做到.也就是说,我从未见过任何关于EXECUTE IMMEDIATE这一点的文章,表明它不是可重入的.另外,如果您尝试它也可以.
这是一个简单的典型EXECUTE IMMEDIATE电话:
DECLARE
l_count NUMBER;
BEGIN
EXECUTE IMMEDIATE 'SELECT COUNT(*) INTO :l_count FROM DBA_OBJECTS WHERE ROWNUM <= 100' INTO l_count;
DBMS_OUTPUT.PUT_LINE ('l_count = ' || l_count);
END;
Run Code Online (Sandbox Code Playgroud)
这基本上是一回事,但是EXECUTE IMMEDIATE嵌套到两个级别的调用:
DECLARE
l_outer_count NUMBER;
BEGIN
EXECUTE IMMEDIATE q'!
BEGIN
EXECUTE IMMEDIATE 'SELECT COUNT(*) INTO :x FROM DBA_OBJECTS WHERE ROWNUM <= 100' INTO :l_outer_count;
END;
!'
USING IN OUT l_outer_count;
DBMS_OUTPUT.PUT_LINE('l_outer_count = ' || l_outer_count);
END;
Run Code Online (Sandbox Code Playgroud)
我从来没有遇到过这样做的必要.
| 归档时间: |
|
| 查看次数: |
197 次 |
| 最近记录: |