收藏:关于表名也动态的动态SQL文章
2007-04-18 09:41 flyingfish 阅读(1047) 评论(0) 编辑 收藏 举报CSDN:huxingz的专栏之ORACLE 中的动态表名的SQL文
DECLARE
NUMBER;
v_table_name varchar2(30);
BEGIN
v_table_name :='xxxx';
EXECUTE IMMEDIATE 'SELECT COUNT(*) from '||v_table_name
INTO a;
DBMS_OUTPUT.put_line (a);
END;
表名是可以变换的,根据情况而变换
DECLARE
TABLENAME varchar2(128);
N VARCHAR2(9);
AA NUMBER;
BEGIN
N := '2';
TABLENAME := 'CJ仮登録' || N || 'TR';
EXECUTE IMMEDIATE 'select count(*) from ' || TABLENAME into AA;
dbms_output.put_line(AA);
END;
注:如果是要执行select-into,好象into一定要写到语句外面..我最近碰到的情况就是这样的.
还有就是如果里面有操作,比如两个变量相加(a+b).必须把操作在之前就完成,然后把新的值用来执行.,而不能在执行时候写.否则会发生错误.