SQLのDUMP関数のように、PL/SQLに変数の正確な型を表示する関数はありますか?
私は次のことを試しました
DECLARE
l_variable INTEGER := 1;
BEGIN
DBMS_OUTPUT.PUT_LINE (DUMP (l_variable));
END;
しかし、次のエラーが発生します。
PLS-00204: 関数または疑似列'DUMP'は、SQL文内でのみ使用できます
SQLのDUMP関数のように、PL/SQLに変数の正確な型を表示する関数はありますか?
私は次のことを試しました
DECLARE
l_variable INTEGER := 1;
BEGIN
DBMS_OUTPUT.PUT_LINE (DUMP (l_variable));
END;
しかし、次のエラーが発生します。
PLS-00204: 関数または疑似列'DUMP'は、SQL文内でのみ使用できます
お気づきのとおり、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 ;
上記のコードは正しく動作しない可能性がありますが、問題の対処方法については理解できるはずです。
これがあなたの要件を満たすことを願っています。
ノート; これらの関数をパッケージに入れて、それに応じて使用できます。
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;