plsql EXECUTE IMMEDIATE動態執行sql


select * from BANK t;

DECLARE
v_money bank.money%TYPE;
BEGIN

--簡單執行sql,注意sql字符串不要帶分號結束
EXECUTE IMMEDIATE 'SELECT money FROM bank WHERE id = 5';

--帶參數,參數使用using傳入,按順序的傳入
EXECUTE IMMEDIATE 'SELECT money FROM bank WHERE id = :param1 or id =:param2'
USING '4','5';

--執行sql后,取值,using在賦值后面
EXECUTE IMMEDIATE 'SELECT money FROM bank WHERE id = :param1'
INTO v_money
USING '2';

DBMS_OUTPUT.PUT_LINE( 'Column Variable: ' || v_money );

END;

 注意:

--using是用於變量參數,但變量是參與sql語句的就不ok啊
EXECUTE IMMEDIATE 'SELECT sysdate FROM dual WHERE :param'
USING '1=1';
--sql 會變成下面的無效sql
SELECT sysdate FROM dual WHERE '1=1'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM