表名可变的动态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).必须把操作在之前就完成,然后把新的值用来执行.,而不能在执行时候写.否则会发生错

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28867265/viewspace-760102/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28867265/viewspace-760102/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值