oracle - 在 SQL*Plus 中描述 - 它是调用包还是运行 SQL? (或者是其他东西?)

标签 oracle sqlplus

当我在 SQL*Plus 中描述 Oracle TYPE 时,SQL*Plus 在“引擎盖下”做了什么——它是否调用 DBMS_METADATA(或类似的)?还是直接查询数据字典?

或者完全是别的什么?

最佳答案

您显然可以使用 alter session set sql_trace=true来回答这样的问题。

为了

create type desc_type as object (
 dummy varchar2(1),

 constructor function desc_type (a number) return self as result,

 final member procedure m 

);
/

alter session set sql_trace=true;

desc desc_type

alter session set sql_trace=false;

drop type desc_type
/

我在跟踪文件中找到了以下相关的 SQL 语句:
select procedure#,procedurename,properties,itypeobj# 
  from procedureinfo$ where obj#=:1 
 order by procedurename desc, overload# desc

select position#,
       sequence#,
       level#,
       argument,
       type#,
       charsetid,
       charsetform,
       properties,
       nvl(length, 0),
       nvl(precision#, 0),
       nvl(scale, 0),
       nvl(radix, 0),
       type_owner,
       type_name,
       type_subname,
       type_linkname,
       pls_type 
  from argument$ 
 where obj#=:1 and procedure#=:2 order by sequence# desc

select max(procedure#) from procedurec$ where obj#=:1

select max(procedure#) from procedureplsql$ where obj#=:1

select max(procedure#) from procedurejava$ where obj#=:1

select procedure#,entrypoint# from procedurec$ 
 where obj#=:1 order by procedure#

select procedure#,entrypoint# 
 from procedureplsql$ where obj#=:1 order by procedure#

select procedure#,ownerlength,classlength,methodlength,siglength, flagslength,cookiesize 
  from procedurejava$ where obj#=:1 order by procedure#

select ownername,classname,methodname,signature,flags 
  from procedurejava$ where obj#=:1 and procedure#=:2 order by procedure#

select count(*) 
  from vtable$ where obj#=:1

select vindex,itypetoid,imethod#,iflags,itypeowner,itypename 
  from vtable$ where obj#=:1 order by vindex

select externtype, externname 
  from type$ where tvoid=:1

因此,在引擎盖下,SQL*Plus 使用普通 SQL。

关于oracle - 在 SQL*Plus 中描述 - 它是调用包还是运行 SQL? (或者是其他东西?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7765145/

相关文章:

oracle sqlplus命令行问题

sql - 如何使用toad在oracle中插入&?

oracle - 从 2050 年到 1950 年的神秘变化

database - 池连接超时

sql - oracle中如何判断一列是否为自增字段?

database - SQL Plus SP2-0306 来自 SQL 文件中的 CONNECT 行,相同的凭据在批处理文件中有效

oracle - 重启服务器后出现 ORA-12514

sql - 当所有子记录满足条件时只选择父记录

sql - 监控长时间运行的 PL/SQL block

linux - 有没有办法配置 sqlplus 将错误输出到 STDERR 而不是 STDOUT?