Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana cara melakukan validasi baris demi baris pada formulir Oracle APEX Tabular menggunakan Ajax?

Bagaimana saya akan mencoba menyelesaikannya. Perhatikan bahwa ini tidak mencakup semua (ada?) kemungkinan atau banyak penanganan kesalahan. Anda harus menguraikannya sendiri sedikit. misalnya saya menggunakan input untuk pemilih, Anda perlu "pilih". Array mungkin tidak cocok. Anda mungkin memerlukan pemilih yang sama sekali lain seperti by td[headers]. Mungkin objek pengembalian Anda perlu menyimpan nilai lain atau lebih. Js Anda mungkin perlu lebih diperluas.
Namun demikian, js Anda akan menjadi dasar yang baik untuk memulai!

Javascript:

function validaterows(){
  var arrf01 = [], arrf02 = [];

  //fetch all the values from the source columns and put them in
  //a javascript array.
  $("input[name=f03]").each(function(){
    arrf01.push($v(this));
  });

  $("input[name=f04]").each(function(){
    arrf02.push($v(this));
  });

  //provide the constructed arrays to the on-demand process by using
  //the global f## arrays
  apex.server.process ( "MY_PROCESS", {
      f01: arrf01
    , f02: arrf02
  }, {
  , success: function( pData ) { 
      //pData should be an object, because jquery will have parsed the returned json-string
      apex.debug(pData);

      $.each(pData.validationArray, function(index, value){
        if ( value === 'INVALID' ) {
          // do something here when the result is invalid
          // maybe you want to color something red for example
          alert('The data at row '+index+' is not valid!');
        };
      });

      }
  } );
}

Proses plsql sesuai permintaan:

DECLARE
  l_return VARCHAR2(4000);
BEGIN
  FOR i IN apex_application.g_f01.count
  LOOP
    -- remember: the f## arrays are varchar arrays. Important for comparisons.
    -- Also take into account that the values could NOT be numeric at all.
    -- you'll probably want to run each value through an is-number check or else 
    -- you'll run into ORA errors
    IF to_number(apex_application.g_f01(i)) > to_number(apex_application.g_f02(i))
    THEN
      l_return := l_return || ',"INVALID"';
    ELSE
      l_return := l_return || ',"VALID"';
    END IF;
  END LOOP;

  IF l_return IS NOT NULL
  THEN
    -- create a json string 
    -- holds an object with 1 property (validationArray) with the value being
    -- an array holding a value for each row submitted
    l_return := '{"validationArray":['||LTRIM(l_return, ',')||']}';
  END IF;

  -- write the output to the buffer
  htp.p(l_return);
END;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. C# Bagaimana cara mengurai string tanggal dalam format tanggal Oracle yang ditentukan secara sewenang-wenang?

  2. Cara mengkonfigurasi ulang Oracle 10g xe di Linux

  3. Alat Pengembang Oracle untuk Visual Studio 2019 tidak dapat diinstal dengan benar

  4. Pengecualian Penerapan Weblogic:PaddingException:Tidak dapat melakukan unpadding:byte pad tidak valid

  5. apa perbedaan antara kata kunci gabung dan kata kunci gabung dalam di Oracle sql?