My Oracle Support Banner

ファンクションのユニット・テストで異なる結果が返ります (Doc ID 2056539.1)

Last updated on AUGUST 04, 2018

適用範囲:

Oracle SQL Developer - バージョン 4.1 以降
この文書の内容はすべてのプラットフォームに適用されます。

現象

マルチバイト(日本語など)が含まれる値を入力し、下記のようなファンク ションを SQL Developer のユニット・テスト機能で実施すると、期待値と異なる結果になります。
例えば値として「あ」を渡した場合、プロシージャのユニット・テス トでは 期待通り「E38182」ですが、ファンクションの場合には「C2BF」になります。


-----

CREATE OR REPLACE PACKAGE BODY test06 AS
PROCEDURE test06_main(pi_arg01 IN VARCHAR2, po_status OUT VARCHAR2) IS
typ_data type01;
BEGIN
 typ_data.typ_d1 := pi_arg01;
 po_status := test06_func(typ_data);
END test06_main;

FUNCTION test06_func(fi_arg01 IN type01) RETURN VARCHAR2 IS
li_ret VARCHAR2(20);
moji   RAW(20);
BEGIN
  moji := utl_i18n.string_to_raw( fi_arg01.typ_d1,'UTF8');
  li_ret := rawtohex(moji);
  RETURN  li_ret;
END test06_func;
END test06;

-----

原因

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.