oracle 中select into是什么意思

来源:互联网 发布:linux安装gcc教程 编辑:程序博客网 时间:2024/04/29 17:53


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
| 评论
向TA求助

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

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

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

提问者对回答的评价:

十分感谢啊.额外给您十分,以后跟您混了,呵呵
原创粉丝点击