0

出力を読みやすくする必要があります。私が直接書くクエリについては、そうすることに成功しました。

  1. カーソルを含むクエリに対しても同じことを行う必要があります。具体的には、カーソルによって返されるレコードもフォーマットする必要があります。しかし、私にはできません。

  2. 代わりに、列名を明示的に出力し、レコードを出力します。まだ同じ。ヘッダーも取得し、その長さに基づいて、受信したレコードもフォーマットする方法はありますか?

4

1 に答える 1

4

私があなたを正しく理解していれば、必要なのは動的解析とlpad-rpad関数です。

DBMS_SQLパッケージを使用すると、SQL ステートメントを動的に解析できます。以下のコードブロックを頭のてっぺんに投げたので、構文エラーがあるかもしれませんが、それはあなたにアイデアを与えるはずです.

declare
  ln_cur number;
  ln_colCnt number;
  l_sqlDesc DBMS_SQL.DESC_TAB;
begin
  ln_cur := DBMS_SQL.open_cursor;
  DBMS_SQL.parse(ln_cur, 'select * from dual', DBMS_SQL.NATIVE);

  DBMS_SQL.describe_columns(ln_cur, ln_colCnt, l_sqlDesc);
  DBMS_OUTPUT.put_line(l_sqlDesc(1).col_name); --First Column Name.

  DBMS_SQL.close_cursor(ln_cur);
end;

lpad-rpad出力をフォーマットする場合は、関数も確認する必要があります。これを試して、自分の目で確かめてください:

begin
    DBMS_OUTPUT.put_line(lpad(20, "Ford"));
    DBMS_OUTPUT.put_line(lpad(20, "Prefect"));
end;
于 2012-04-15T16:23:46.057 に答える