现在的位置: 首页 > 综合 > 正文

oracle pl/sql 高级编程 第七章 动态SQL

2013年01月18日 ⁄ 综合 ⁄ 共 880字 ⁄ 字号 评论关闭
执行动态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;
/
注意:运行以上代码,查看结果!!! 
【上篇】
【下篇】

抱歉!评论已关闭.