小编ako*_*rov的帖子

如何在不使用 DESCRIBE 子句的情况下描述 ORACLE 包?

我一直在研究如何在不使用“DESCRIBE table/view;”的情况下描述 TABLES 和 VIEWS;条款。我发现它可以使用以下方法解决:

SELECT column_name, data_type, data_length, data_precision, data_scale, nullable
FROM all_tab_columns
WHERE table_name = 'TABLE'
Run Code Online (Sandbox Code Playgroud)

这在像 PHP 这样的计算机语言中是完全可编程的,但我没有找到“DESCRIBE package_name”子句的解决方法。

我有以下想法(但在带有线轴的 SQL*PLUS 中):

DECLARE
  x VARCHAR2(50);
  CURSOR cursorPaquetes IS
    SELECT DISTINCT OBJECT_NAME
    FROM ALL_OBJECTS
    WHERE OBJECT_TYPE = 'PACKAGE' AND OWNER = 'SATURN';
BEGIN
  FOR item IN cursorPaquetes LOOP
    x := 'DESCRIBE '||item.OBJECT_NAME||';';
    EXECUTE IMMEDIATE x;
  END LOOP;
END;
Run Code Online (Sandbox Code Playgroud)

但它没有用:(。抛出以下错误:

ORA-00900:sentencia SQL 无效 ORA-06512:en línea 12

当像这样修改“x”变量时:

x := 'BEGIN DESCRIBE '||item.OBJECT_NAME||'; END;';
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ERROR en línea 1: ORA-06550: …

oracle sqlplus describe oracle11g

3
推荐指数
1
解决办法
5365
查看次数

标签 统计

describe ×1

oracle ×1

oracle11g ×1

sqlplus ×1