sql >> データベース >  >> RDS >> Oracle

Oracle APEX v4.2.2 でのオンザスポット検証の目的で Ajax を介して Oracle 関数を呼び出す

    Ajax + apex 4.2 =apex.server.プロセス API
    ページのオンデマンド プロセス ポイントまたはアプリケーション プロセスでのプロセスが必要です。その中で、関数を呼び出してパラメーターを提供する必要があります。これは、ページ アイテムになる可能性があります。リターンを提供するには、htp.p への呼び出しで http バッファに値を書き込みます .

    DECLARE
      some_var1 VARCHAR2(50);
    BEGIN
      some_var1 := my_package.my_function(:P1_EMPNO, :P1_DEPTNO);
      -- write values back
      htp.p(some_var1);
    END;
    

    apex.server.process を簡単に提供できます ページアイテム付き。以降の処理はすべて javascript で行います。
    注意:dataType はデフォルトで JSON に設定されているため、他のデフォルト データ型を指定せず、json 文字列を返さない場合は、解析エラーが発生します。そのため、INVALID などのオンデマンド プロセス内でテキストを返す場合は、必ずデータ型をテキストに設定してください!

    apex.server.process ( "MY_PROCESS", {
      pageItems: "#P1_DEPTNO,#P1_EMPNO"
      }, {
        dataType: "text"
      , success: function( pData ) { 
          //pData should contain VALID or INVALID - alert it
          alert(pData);
          if ( pData === 'INVALID' ) {
            // do something here when the result is invalid
            // maybe you want to color something red for example
            alert('The data you have entered is invalid');
          };
        }
      } );
    

    可能かもしれませんが、これを必要以上に動的なアクションに分割することはしません。個人的には、PLSQL ブロックの動的 true アクションを使用するのは好きではありません。戻り値を処理したい場合にアクションを実行する方がわかりにくいからです。
    ページを送信するのではなくアクションを実行するようにボタンを設定してください。動的アクションによって定義されます。次に、動的アクションで javascript を実行するタイプの真のアクションを 1 つ作成し、そこでコールバックを使用して ajax 呼び出しを使用します。




    1. SQLServerの一時テーブルの概要

    2. ASPMVCMsSqlからMySQLへの移行

    3. テーブルでVARCHAR(MAX)を使用することに不利な点はありますか?

    4. 作成した表から講師用の予定表を作成するにはどうすればよいですか