我用scott进入sqlplus 建立了一个
SQL> create table tt1 as select empno,ename ,sal from emp where 1=2;表已创建。SQL> select * from tt1;未选定行报错未选定是什么意思,不是应该弹出没有记录的一个tt1 空表吗?
SQL> create table tt1 as select empno,ename ,sal from emp where 1=2;表已创建。SQL> select * from tt1;未选定行报错未选定是什么意思,不是应该弹出没有记录的一个tt1 空表吗?
解决方案 »
- 关于9i表空间扩展的问题
- 写了个sql,但是返回的结果集太大了,前台的jsp都没响应了。怎么让它每次返回30行呢?
- 求一SQL。
- 触发器问题
- SSL_ALG_CLIENT_AUTH_MODE_RSA_SIGN_SERVERSIDE_BS
- 高手来看啊!select * from v$process where PROGRAM='ORACLE.EXE'谁知道怎样取其中一个的内存利用率!
- 把oracle8.0.5一个用户的所有数据存到另一个用户下怎么做?
- 00979错误和SQL几个问题
- sql*net2.3问题,要多少分给多少分,只要能解决
- 创建临时表并向表中添加记录数据,出现错误ora-25153。
- 在fedora9中安装oracle11g 时遇到的些问题,麻烦大家进来看看!
- 请教ORACLE并行执行的问题
要想数据也和emp一样的话,要改成
create table tt1 as select empno,ename ,sal from emp where 1=1;
就把所有数据都复制过来了
要想数据也和emp一样的话,要改成
create table tt1 as select empno,ename ,sal from emp where 1=1;
就把所有数据都复制过来了
未选定行只是说明这个表里没有记录而已那么为什么没有记录呢?
因为你在创建表的时候
create table tt1 as select empno,ename ,sal from emp where 1=2;你的tt1和emp表的结构是一样的 不过由于你指定了where子句1=2 而这个条件永远为假
所以后面的那个select也就不会选中任何数据
tt1表中没有数据也就是正常的了
而且这个在sqlplus中才会出现 plsql developer中不会 就是你说的弹出没有记录的一个tt1 空表
这说明2个事情,你的SQL语句在语法上是没有问题的;你给的条件下结果集为空
create table tt1 as select empno,ename ,sal from emp where 1=1;
2.建表的同时不复制数据
create table tt1 as select empno,ename ,sal from emp where 1=2;
--我自己用sqlplus测试:
scott/tigercreate table t as
select * from emp where 1=0;select count(*) from t;
COUNT(*)
--------
0select * from t;
no row selected
你的意思是说desc table
试试看吧
desc tt1
----
sql>select constraint_name,table_name from user_constraints;查询结果:
constraint_name table_name
mybook_pk mybook
sql>select constraint_name,table_name from user_constraints where table_name='mybook';
未选定行 ? 这是个系统表,也查得到数据,可以证明表不是空的,那为什么还提示‘未选定行’呢