oracle的sql怎么定义变量啊
如在oracle的sql语句中,先定义一个变量a等于20110101(这个可以随便手工修改),然后insertintotable1select*fromtable2whe...
如在oracle的sql语句中,先定义一个变量a等于20110101(这个可以随便手工修改),然后insert into table1
select* from table2 where date=:a; 实现类似的功能,请问怎么做啊 展开
select* from table2 where date=:a; 实现类似的功能,请问怎么做啊 展开
3个回答
展开全部
create or replace procedure p_insert
(a varchar2(8))
as
begin
insert into table1 select * from table2 where "date"=a;
commit;
end;
上边是创建
执行时
begin
p_insert('20110101') ;
end;
说一下,你这个a和表2里的类型必须都一致,都要是字符型,如果不是的话,输入参数a不可以变,你可以在表2里用to_char函数将日期转成这个格式
还有你表2里的字段叫date,这个是关键字,所以加了双引号
追问
不好意思,可能没说清楚,整个sql语句很长,很多地方都需要用到a这个变量的,那要把全部几百行的语句都写成存储过程啊
追答
写了存储过程后,你用记事本里替换一下就OK了啊
把所有的20110101换成a就好了,oracle只有存储过程里能用变量来处理,直接在sql上不太可能
展开全部
不用存储过程那么麻烦的。。。
insert into table1 select* from table2 where date= &a;
执行的时候自动会跳出框让你填写a的值。。这里a是数值
如果a是字符或日期格式的的话那么改成
insert into table1 select* from table2 where date= '&a';
insert into table1 select* from table2 where date= &a;
执行的时候自动会跳出框让你填写a的值。。这里a是数值
如果a是字符或日期格式的的话那么改成
insert into table1 select* from table2 where date= '&a';
更多追问追答
追问
怎么在sql语句中给a赋值啊
追答
&a 就这样。你运行就知道了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a integer;
b date;
另外 你的where语句不对 where date=a
b date;
另外 你的where语句不对 where date=a
追问
能不能写全点啊,谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询