|
oracle的核心代码还是c接口的,看不到源代码
比如
SQL> select dbms_ddl.wrap('create trigger a') from dual;
select dbms_ddl.wrap('create trigger a') from dual
*
第 1 行出现错误:
ORA-24230: 向 DBMS_DDL.WRAP 输入的内容不是合法的 PL/SQL 单元
ORA-06512: 在 "SYS.DBMS_DDL", line 595
然后
select text from dba_source where name='DBMS_DDL';
保存到dbms_ddl.txt
D:\>base dbms_ddl.txt dbms_ddl.sql
type code: b
len_src: 15853 len_wrap: 4566
freadsize:4566 read ok
b64 size: 4504,4504
unzip size:15852
D:\>dbms_ddl.sql
第595行是
FUNCTION WRAP(DDL VARCHAR2) RETURN VARCHAR2 IS
WRAPPED VARCHAR2(32767);
BEGIN
595-------> WRAP_VC2(DDL, FALSE, WRAPPED);
RETURN WRAPPED;
END;
再看定义
PROCEDURE WRAP_VC2(DDL VARCHAR2, EXECUTE BOOLEAN,
WRAPPED OUT NOCOPY VARCHAR2);
-------> PRAGMA INTERFACE(C, WRAP_VC2); |
|