10

SQLのDUMP関数のように、PL/SQLに変数の正確な型を表示する関数はありますか?

私は次のことを試しました

DECLARE
   l_variable   INTEGER := 1;
BEGIN
   DBMS_OUTPUT.PUT_LINE (DUMP (l_variable));
END;

しかし、次のエラーが発生します。

PLS-00204: 関数または疑似列'DUMP'は、SQL文内でのみ使用できます

4

3 に答える 3

3

お気づきのとおり、DUMP はオーバーロードされた関数です。3 つのオーバーロードがあります。

したがって、コード内で同じことをシミュレートできます。

function myDump (x Varchar2) return varchar2 is begin return('string') ; end ;
function myDump (x number) return varchar2 is begin return('integer') ; end ;
function myDump (x date) return varchar2 is begin return('date') ; end ;

上記のコードは正しく動作しない可能性がありますが、問題の対処方法については理解できるはずです。

これがあなたの要件を満たすことを願っています。

ノート; これらの関数をパッケージに入れて、それに応じて使用できます。

于 2013-07-04T08:21:16.600 に答える
2
declare
  a number(10,3);
  type_info varchar2(400);
begin
  a := 55.5;
  select dump(a) into type_info from dual;
  DBMS_OUTPUT.PUT_LINE(type_info);
end;
于 2013-06-16T14:35:16.637 に答える