oracle 中select into是什么意思


2011-4-27 16:06
提问者: mike8625 | 浏览次数:7090次
把一个表里面的内容复制到另一个吗 还是别的 是不是还要先创建一个表啊
create table aaa as select * from bbb 这样的效果 用select into 能做到么?
我来帮他解答
输入内容已经达到长度限制
还能输入  9999 
插入图片删除图片 插入地图删除地图 插入视频视频地图
取消
2011-4-27 16:18
满意回答
这是一个复制表数据的操作。
创建aaa表,这里没有定义aaa表的字段以及类型,而是用select * from bbb,这就是把bbb里面所有的字段包含类型以及数据都复制到aaa中去。那么就创建了一张和bbb表一样的aaa表。包括数据等都一样。只是不包含bbb表中的主键以及约束等。
这个地方是不能使用select into来完成的。
select into 是SQLSERVER的语法:同样的效果select * into aaa from bbb
追问
select * into aaa from bbb 
我先创建了表 bbb 里面有数据 
然后创建aaa 字段名字跟他一样 
然后和 select * into aaa from bbb  报错 说缺失关键字....
回答
select * into aaa from bbb  
这个是SQLSERVER的语法,不是ORACLE的语法。
您看我上边的回答,我说SQLSERVER那么写和您那个ORACLE是同样的效果。
如果创建好了AAA一样的字段等,可以这么写
insert into aaa  select * from bbb
追问
我是在oracle存储过程中 发现有人用的 他是这么写的

IF ACTIONTIME IS NULL THEN
    SELECT TRUNC(SYSDATE-1,'DD') INTO ACTIONTIME FROM DUAL;

这个是什么意思啊
回答
这是给ACTIONTIME变量赋值,你在程序前边声明变量的地方找,肯定能找到ACTIONTIME这个日期型变量。
TRUNC(SYSDATE-1,'DD') 是获取昨天的日期,比如今天是27号,那么这个结果就是2011年4月26日。
IF ACTIONTIME IS NULL THEN
    SELECT TRUNC(SYSDATE-1,'DD') INTO ACTIONTIME FROM DUAL;
END IF;------后边应该有这句吧?
这个的意思是,如果ACTIONTIME这个变量是空的话,那么就设置这个变量的值为昨天的日期。
就这么简单。如果这个变量非空,那么就不设置了,保留原值。
赞同
10
| 评论

回答者: hit_lubin 来自团队 IT-启明星 | 七级采纳率:50%

擅长领域: 数据库 其他编程语言 足球

参加的活动: 暂时没有参加的活动

提问者对回答的评价:

十分感谢啊.额外给您十分,以后跟您混了,呵呵
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值