使用 PL SQL 将所有列值打印到仅记录

Posted

技术标签:

【中文标题】使用 PL SQL 将所有列值打印到仅记录【英文标题】:Print all column values via only Record using PLSQL 【发布时间】:2014-07-01 06:41:52 【问题描述】:

我有以下打印记录参数的 plsql 脚本。 有没有办法打印所有通过country_record 的列值。 我的意思是我不想写像country_record.country_id这样的所有列名

 DECLARE
       country_record   countries%ROWTYPE;
       countryid        countries.country_id%TYPE;
    BEGIN
       countryid := &countryid;

       SELECT *
         INTO country_record
         FROM countries
        WHERE country_id = countryid;

       DBMS_OUTPUT.put_line ('id: ' || country_record.country_id);
    END;

【问题讨论】:

你会在这里找到答案:***.com/questions/8717251/… 【参考方案1】:

如果你想打印它,你可以试试这个。使用SQL*Plus

VARIABLE MYCUR SYSREFCURSOR;

 DECLARE
       country_record   countries%ROWTYPE;
       countryid        countries.country_id%TYPE;
       plsql_cursor SYS_REFCURSOR;
    BEGIN
       countryid := &countryid;

       OPEN :MYCUR for 
       SELECT *
         FROM countries
        WHERE country_id = countryid;

    END;
  /

  print mycur;

【讨论】:

我用的是TOAD,有没有类似的解决方案? 同一个概念,一个答案here

以上是关于使用 PL SQL 将所有列值打印到仅记录的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 PL/SQL 过程和表名作为变量打印动态 SQL 中的所有表行?

PL SQL - 使用动态 SQL 生成删除语句

PL/SQL-如何使用游标的所有列插入表

如何从 PL/SQL 导出半百万条记录

PL/SQL 中的验证检查

如何从结果集中打印值而没有列中的任何重复记录