代码改变世界

收藏:关于表名也动态的动态SQL文章

2007-04-18 09:41  flyingfish  阅读(1052)  评论(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).必须把操作在之前就完成,然后把新的值用来执行.,而不能在执行时候写.否则会发生错误.

 

另:http://bbs.chinaunix.net/viewthread.php?tid=878777