0

バーコード スキャナーを使用してバーコードをスキャンしています (これは order^location で構成されています - 私は ^ をセパレーターとして使用しています)。これを分離して 2 つの値を 2 つのテキスト フィールドに入れる必要があります。アイデアは、バーコードを 3 番目のテキスト フィールドにスキャンし、保存が押された後にプロセスを使用して分離することです。これらは、個別のテーブル列に保存されます。テキストを区切る以下がありますが、配列に保持されている値を APEX フォームのテキスト フィールドに取得しようとしています。

SQL開発者で次の行で機能する以下のコードがありますが、それらを変更して値をテキストフィールドに入れようとすると失敗します。構文が正しいのか、それとも間違っているのか疑問に思いましたか?

 dbms_output.put_line(v_array(1)); -- This works in SQL Developer

 :P1_ORDER := dbms_output.put_line(v_array(1)); -- Fails in SQL Developer & APEX

SQL開発者で以下を実行しようとすると、次のようになります。配列の値を APEX フォームのテキスト フィールドに渡すのを手伝ってくれませんか。ありがとう。

ORA-06550: 17 行目、13 列目: PLS-00222: このスコープには名前が 'PUT_LINE' の関数は存在しません ORA-06550: 17 行目、5 列目: PL/SQL: ステートメントは無視されました

 declare

  v_array apex_application_global.vc_arr2;
  P1_ORDER number;
  P1_LOCATION number;

 begin

  -- Convert delimited string to array
  v_array := apex_util.string_to_table(:P1_JOB_NUMBER,'^');

  --dbms_output.put_line(v_array(1));
  --dbms_output.put_line(v_array(2));

  :P1_ORDER := dbms_output.put_line(v_array(1));
  :P1_LOCATION := dbms_output.put_line(v_array(2));

 end;
4

1 に答える 1

0

put_line は関数ではなく、dbms_output パッケージのプロシージャです。

dbms_output.put_line を変数に割り当てることはできません。

これを試して

declare

 v_array apex_application_global.vc_arr2;
 P1_ORDER number;
 P1_LOCATION number;

begin

 -- Convert delimited string to array
 v_array := apex_util.string_to_table(:P1_JOB_NUMBER,'^');

 --dbms_output.put_line(v_array(1));
 --dbms_output.put_line(v_array(2));

 P1_ORDER := v_array(1);
 P1_LOCATION := v_array(2);

end;
于 2012-11-28T10:38:52.743 に答える