SP数据字典

时间:2017-07-30 19:07:11

标签: oracle plsql

我在我的oracle数据库中创建了1个程序

create or replace procedure P1(p_empno in number)
is
p_ename varchar2(10);
p_sal number(10);
begin
select ename,sal into p_ename,p_sal from emp where empno=p_empno;
dbms_output.put_line(p_ename||'  '||p_sal);
end;

SQL> Procedure created.

但是当我试图查看数据字典时,它看起来像

SQL>从user_source中选择名称;

NAME
------------------------------
P1
P1
P1
P1
P1
P1
P1
P1
PROTECTED_PROC
PROTECTED_PROC
PROTECTED_PROC
PROTECTED_PROC
PROTECTED_PROC
PROTECTED_PROC

14 rows selected.

这是我创造的一次,但它显示了P1(8)次

2 个答案:

答案 0 :(得分:1)

USER_SOURCE表保存您的过程的源代码 - 每行一行。由于您的过程长度为8行,因此每行代码(程序)将获得8行。

如果查询

,将会很清楚
SELECT * FROM USER_SOURCE WHERE WHERE NAME = 'P1';

或者如果您不需要源代码查询:

SELECT * FROM USER_PROCEDURES WHERE OBJECT_NAME = 'P1';

答案 1 :(得分:0)

因为它是8行。

你可以看到;

SELECT * FROM USER_SOURCE;