oracle inside(7)

來源:互聯網
上載者:User
執行動態SQL有兩種方式:一是 DBMS_SQL 程式包;二是本機動態 SQL。
7.1 DBMS_SQL 程式包
功能強大,函數眾多,很少使用。
7.2 本機動態SQL
7.2.1 執行 DDL 語句
BEGIN
PL/SQL 進階編程
第 29 頁 共 29 頁
EXECUTE IMMEDIATE 'CREATE TABLE yang_test (eid VARCHAR2(30) PRIMARY KEY)';
EXECUTE IMMEDIATE 'ALTER TABLE yang_test ADD (ePhoto CLOB)';
EXECUTE IMMEDIATE 'ALTER TABLE yang_test MODIFY (eid NUMBER)';
EXECUTE IMMEDIATE 'DROP TABLE yang_test';
END;
/
7.2.2 使用綁定變數
DECLARE
l_sql VARCHAR2(200);
l_photo yang_test.ePhoto%TYPE;
l_id yang_test.eid%TYPE;
BEGIN
l_sql := 'INSERT INTO yang_test VALUES(:1, :2)';
EXECUTE IMMEDIATE l_sql USING 10, 'welcome to our couty';
COMMIT;
l_sql := 'SELECT ePhoto, eid FROM yang_test WHERE eid = :1';
EXECUTE IMMEDIATE l_sql INTO l_photo, l_id USING 10;
DBMS_OUTPUT.PUT_LINE(l_id);
DBMS_OUTPUT.PUT_LINE(l_photo);
END;
/
注意:運行以上代碼,查看結果!!!
7.2.3 執行 PL/SQL 塊
DECLARE
l_id NUMBER;
l_sql VARCHAR2(200) := 'BEGIN SELECT eid INTO :1 FROM yang_test; END;';
BEGIN
EXECUTE IMMEDIATE l_sql INTO l_id;
DBMS_OUTPUT.PUT_LINE(TO_CHAR(l_id));
END;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.