oracle的sql怎么定义变量啊

如在oracle的sql语句中,先定义一个变量a等于20110101(这个可以随便手工修改),然后insertintotable1select*fromtable2whe... 如在oracle的sql语句中,先定义一个变量a等于20110101(这个可以随便手工修改),然后insert into table1
select* from table2 where date=:a; 实现类似的功能,请问怎么做啊
展开
 我来答
badkano
2013-11-11 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885373
团长

向TA提问 私信TA
展开全部
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上不太可能
百度网友58008aaeb8
推荐于2017-11-26 · TA获得超过105个赞
知道小有建树答主
回答量:109
采纳率:100%
帮助的人:36.2万
展开全部
不用存储过程那么麻烦的。。。

insert into table1 select* from table2 where date= &a;

执行的时候自动会跳出框让你填写a的值。。这里a是数值

如果a是字符或日期格式的的话那么改成

insert into table1 select* from table2 where date= '&a';
更多追问追答
追问
怎么在sql语句中给a赋值啊
追答
&a 就这样。你运行就知道了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱栀竹的人
2013-11-11 · TA获得超过1352个赞
知道大有可为答主
回答量:1743
采纳率:0%
帮助的人:1000万
展开全部
a integer;
b date;

另外 你的where语句不对 where date=a
追问
能不能写全点啊,谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式