oracle 存储过程的小问题 - Oracle / 开发
以下是截取oracle存储过程的一个片段
tablename :='CLTX_'||cur_dt1||mm1;
dbms_output.put_line(tablename);
execute immediate 'select count(*) into '|| temp3||' from USER_TABLES where table_name='||tablename;
dbms_output.put_line('temp3:'||temp3)
if tem3>0 then
dbms_output.put_line('表已存在');
else
dbms_output.put_line('表bu存在');
end if;
注(tablename为varchar变量,temp3为number或者int变量)
上面这段程序在触发器里面可以编译通过,为什么在存储过程中无法编译通过,很是不解?
另外一个问题insert into CLTX_200805_200809 select * from CLTX_200809;为什么不能把
CLTX_200809表中数据添加进CLTX_200805_200809 ?注:两个同构
改成下面的语句执行看看
EXECUTE IMMEDIATE 'select count(*) from USER_TABLES where table_name= :1'
INTO temp3
USING tablename;
另一个问题SQL code:
--表结构复制(全部复制)
--sqlserver select * into A from B
create table A as(select * from B)
--只复制结果
--sqlserver select * into A from B where 2!=1
create table A as(select * from B where 5=3)
EXECUTE IMMEDIATE中的select into要注意。
SQL code
Code highlighting produced by A
相关问答:
大家好,我现在把oracle服务器上面的原始文件,下载到本机了.我想在本机访问数据库怎么设置啊.是不是类似可以建立一个什么虚拟服务器来实现.请大家出出主意
引用
大家好,我现在把oracle服务器上面 ......
在系统运行的时候总是有一块磁盘始终闪红灯,进入系统后
#topas查看总是有一块磁盘%BUSY为90%以上,
数据库版本:oracle 9.2.0.7
数据文件挂载的节点:/oradata/pcs/ 逻辑卷号lv04
#lslv -l lv04
......
有这样一条SQL
Select Get_Costtaxrate(col1), Get_Tcostvalue(col1) from a
其中Get_Costtaxrate、Get_Tcostvalue都是函数,这两个函数里面都是查找一个大表,Get_Tcostvalue还需要调用Get_C ......
oracle 通过BDlink 连接到一台MS SQL,查询都可以,但是不知道如何在oracle通过DBLink调用MS SQL的存储过程,求解~谢谢~
引用
oracle 通过BDlink 连接到一台MS SQL,查询都可以,但是不知道如何在oracle通过DBLink调用M ......
select distinct '1' t1,'2' t2,'3' t3,'4' t4 from table 查出来的结果为
1,2,3,4
我想得以下这样的效果
1
2
3
4
请问一下有什么办法可以解决???
没有好的方法,用union,一条条记录拼接
SQL code:
wi ......