oracle - 从自定义子查询中选择列名称/别名列表

标签 oracle list format subquery alias

在 Oracle 中,有没有办法选择带有别名的自定义查询返回的所有列?举个例子,假设我们有一个如下查询:

    SELECT FIRST_NAME AS COL1, LAST_NAME AS COL2, ADDRESS AS COL3
    FROM PEOPLE

我想知道是否可以进行封装查询并返回:

    COL1
    COL2
    COL3

最佳答案

以下是如何在 PL/SQL 中执行此操作。不知道是否可以仅使用直接的 oracle SQL。如果需要,您始终可以将其封装在某种函数中。

DECLARE
   TYPE RefCursor_Type IS REF CURSOR;

   D_RefCur             RefCursor_Type;
   D_DescriptionTable   DBMS_SQL.DESC_TAB2;
   D_ColumnCount        INTEGER;
   D_CursorHandle       INTEGER;
BEGIN
   OPEN D_RefCur
   FOR 'SELECT FIRST_NAME AS COL1, LAST_NAME AS COL2, ADDRESS AS COL3 FROM PEOPLE';

   D_CursorHandle := DBMS_SQL.to_cursor_number (D_RefCur);

   DBMS_SQL.DESCRIBE_COLUMNS2 (D_CursorHandle,
                               D_ColumnCount,
                               D_DescriptionTable);


   FOR idx IN 1 .. D_ColumnCount
   LOOP
      DBMS_OUTPUT.put_line (D_DescriptionTable (idx).col_name);
   END LOOP;
END;

关于oracle - 从自定义子查询中选择列名称/别名列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17198923/

相关文章:

java - 在 Oracle 中实现乐观锁

python - 创建一个字典列表,每一步仅修改一个值

list - Flutter:方法 'add' 在 null 上被调用

c++ - C++中的cout浮点格式

java - 字符串的简单日期格式

c# - 如何以表格格式显示 SQL 数据库

sql - 在 Oracle 中使用 MODEL 子句并返回以前的值

Oracle PL/SQL 获取服务器的 IP v4?

sql - 获取Oracle中所有表的列表?

python - 为什么python list没有len()方法