A example for Dynamic SQL I saw in a book![@more@]--首先,根据用户输入的表名及字段名等参数动态建表,并进行编译
CREATE OR REPLACE PROCEDURE emp_e
( table_name in varchar2
,ziduana in varchar2
,datatypea in varchar2
,ziduanb in varchar2
,datatypeb in varchar2
)
AS
str_sql varchar2(500);
BEGIN
str_sql := 'create table'||table_name||'('||ziduana||'
'||datatypea||','||ziduanb||' '||datatypeb||')';
EXECUTE IMMEDIATE str_sql;
EXECEPTION WHEN OTHERS THEN
NULL;
END;
--然后,执行存储过程动态创建表,使用本地动态SQL根据用户输入的表名及字段名、字段类型等参数
--实现动态执行DDL语句
EXECUTE emp_e('empe','empno','number(10) not null','ename','varchar2(30)');
--接着,通过DESC查empe的表的数据字典,以便查看表的相关信息。
CREATE OR REPLACE PROCEDURE emp_e
( table_name in varchar2
,ziduana in varchar2
,datatypea in varchar2
,ziduanb in varchar2
,datatypeb in varchar2
)
AS
str_sql varchar2(500);
BEGIN
str_sql := 'create table'||table_name||'('||ziduana||'
'||datatypea||','||ziduanb||' '||datatypeb||')';
EXECUTE IMMEDIATE str_sql;
EXECEPTION WHEN OTHERS THEN
NULL;
END;
--然后,执行存储过程动态创建表,使用本地动态SQL根据用户输入的表名及字段名、字段类型等参数
--实现动态执行DDL语句
EXECUTE emp_e('empe','empno','number(10) not null','ename','varchar2(30)');
--接着,通过DESC查empe的表的数据字典,以便查看表的相关信息。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10484922/viewspace-975774/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10484922/viewspace-975774/