支持一楼使用select count(*) from table_name;来确定表里是否有记录,或者可以自己写一个函数来判断:create or replace funcation Is_null_table(strTablename in varchar) return number strsql varchar(4000); begin strsql := 'select * from ' || trim(strTablename); execute immediate strsql; if sql%rowcount > 0 then return 1; else return 0; end if; end;使用 select Is_null_table('your_table_name') from dual; 如果返回只为0则表示没有数据,如果返回值为1则表示表中有数据。
直接select * from 表名,可以查询表中的记录; 通过select count(*) from 表名,可以查询表中的记录数; 如表中记录数较多,可以通过: select * from 表名 where rownum < 一数值,查看小于这一数值的表中记录
这样效率更高 select 1 from dual where exits (select 1 from tablename);
或者 select 1 from tablename where rownum=1;
用select count(*) from a 如果有记录就会大于等于1 没有记录就会等于0
这样效率更高 select 1 from dual where exits (select 1 from tablename);这个高
21:33:02 SQL> select 1 from dual where exits ( select 1 from emp ); select 1 from dual where exits ( select 1 from emp ) * ERROR 位于第 1 行: ORA-00936: 缺少表达式这是为什么????????
我试过了,这条不好用,不过上面的挺好的 /////////////////////////////////////////////////// 如表中记录数较多,可以通过: select * from 表名 where rownum < 一数值,查看小于这一数值的表中记录 ///////////////////////////////////////////////////
create table test(field1 number); insert into test values(null); select count(*) from test; 不知道有没有记录 刚才看了个帖子说记录是空的时候 count 不出来,不知道是不是这样 我这里没有环境,不能试.
如果表中有唯一约束,能够count 出来的。没有就看情况了
22:03:09 SQL> create table test(field1 number);表已创建。已用时间: 00: 00: 01.04 22:29:43 SQL> insert into test values(null);已创建 1 行。已用时间: 00: 00: 00.00 22:29:44 SQL> select count(*) from test; COUNT(*) ---------- 1
select 1 from dual where exits ( select 1 from emp ); * ERROR 位于第 1 行: ORA-00936: 缺少表达式这是为什么???????? ------------------------晕~ 因为exits拼写错了,改成exists就okselect 1 from dual where exists ( select 1 from test );
strsql varchar(4000);
begin
strsql := 'select * from ' || trim(strTablename);
execute immediate strsql;
if sql%rowcount > 0 then
return 1;
else
return 0;
end if;
end;使用 select Is_null_table('your_table_name') from dual; 如果返回只为0则表示没有数据,如果返回值为1则表示表中有数据。
通过select count(*) from 表名,可以查询表中的记录数;
如表中记录数较多,可以通过:
select * from 表名
where rownum < 一数值,查看小于这一数值的表中记录
select 1 from dual where exits (select 1 from tablename);
如果有记录就会大于等于1
没有记录就会等于0
select 1 from dual where exits (select 1 from tablename);这个高
select 1 from dual where exits ( select 1 from emp )
*
ERROR 位于第 1 行:
ORA-00936: 缺少表达式这是为什么????????
///////////////////////////////////////////////////
如表中记录数较多,可以通过:
select * from 表名
where rownum < 一数值,查看小于这一数值的表中记录
///////////////////////////////////////////////////
insert into test values(null);
select count(*) from test;
不知道有没有记录
刚才看了个帖子说记录是空的时候
count 不出来,不知道是不是这样
我这里没有环境,不能试.
22:29:43 SQL> insert into test values(null);已创建 1 行。已用时间: 00: 00: 00.00
22:29:44 SQL> select count(*) from test; COUNT(*)
----------
1
*
ERROR 位于第 1 行:
ORA-00936: 缺少表达式这是为什么????????
------------------------晕~ 因为exits拼写错了,改成exists就okselect 1 from dual where exists ( select 1 from test );