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'