重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
oracle数据库中,已建立好的存储过程信息存储在系统表ALL_SOURCE 中,需要用sysdba身份登录数据库,进行查询操作,SQL命令如下:
为安陆等地区用户提供了全套网页设计制作服务,及安陆网站建设行业解决方案。主营业务为成都网站建设、网站制作、安陆网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
1
2
3
4
5
SELECT line,text FROM ALL_SOURCE
WHERE TYPE='PROCEDURE'
AND NAME='过程名称'
AND OWNER='用户名'
ORDER BY line;
存储过程分成多行,每一行会存储为一条数据,所以,查询出来的会是多行,line表示行号。
ALL_SOURCE 表中还存储了以下类型信息:
1
2
3
4
5
6
7
8
9
10
SQL select distinct type from all_source ;
TYPE
------------
TYPE (对象)类型
TYPE BODY 类型体
PROCEDURE a href=";tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1dWrjmvuWfvrycYrAmzuH7B0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnW6srHTsrjnz" target="_blank" class="baidu-highlight"存储过程/a
FUNCTION 函数
TRIGGER a href=";tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1dWrjmvuWfvrycYrAmzuH7B0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnW6srHTsrjnz" target="_blank" class="baidu-highlight"触发器/a
PACKAGE 包
PACKAGE BODY 包体
select t.*,rownum rn from table1 t --rownum就是记录所在的行数
你是指定ID去查询,得到的记录只有一条,所以rownum始终是1了,你想要的结果应该是
select tt.*,tt.rn from
(select t.*,row_number() over (order by id) rn from table1 t ) tt
where tt.id = 你要查询的ID值
某个用户的表的表名从数据字典表 user_tables 可以查到,虽然 user_tables 数据字典中也有表的行数 NUM_ROWS 字段,但除非你对该用户进行统计信息收集(运行 dbms_stat.gather_schema_stats()系统包)否则该字段要么没有值,要么值是过期的数据,不准确. 正确的做法是:对数据库用户进行统计信息收集后,立刻执行:
select table_name,num_rows from user_tables;
如果非要用ROWNUM的话 可以这样
SELECT *
FROM (SELECT T.* , ROWNUM ROW_NO FROM EMP T ORDER BY T.EMPNO )
WHERE ROW_NO = 10
排序很重要,不排序的话没有办法保证取出来的ROW_NO = 10 就是你想要的
DBA权限下可以查询dba_tables,里面有个num_rows列
select table_name,num_rows from dba_tables where ...;
条件可以根据自己需要来加
num_rows列并不是实时更新的,1小时更新一次。
扩展资料:
Oracle数据库常用sql语句:
一,INSERT (往数据表里插入记录的语句)
INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……);
INSERT INTO 表名(字段名1, 字段名2, ……) SELECT (字段名1, 字段名2, ……) FROM 另外的表名;
二,DELETE (删除数据表里记录的语句)
DELETE FROM表名 WHERE 条件;
三,UPDATE (修改数据表里记录的语句)
UPDATE表名 SET 字段名1=值1, 字段名2=值2, …… WHERE 条件;
四,改变表的名称
ALTER TABLE 表名1 TO 表名2;
五,在表的后面增加一个字段
ALTER TABLE表名 ADD 字段名 字段名描述;
六,修改表里字段的定义描述
ALTER TABLE表名 MODIFY字段名 字段名描述;
参考资料:百度百科:Oracle数据库
oracle的行号用rownum来表示。
如:有test表,数据如下:
现在要求给出每行的行号,可用如下SQL语句。
select rownum,test.* from test;
查询结果如下: