Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Wywołanie funkcji Oracle przez Ajax w celu walidacji na miejscu w Oracle APEX v4.2.2

Ajax + apex 4.2 =apex.server. API procesu
Wymaga posiadania procesu w punkcie procesu na żądanie strony lub procesu aplikacji. W nim musisz wywołać swoją funkcję i podać parametry, którymi mogą być elementy strony. Aby zapewnić zwrot, zapisz wartości do bufora http z wywołaniami htp.p .

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

Możesz łatwo dostarczyć apex.server.process z elementami strony. Dalsza obsługa jest w całości w javascript.
Uwaga ostrzegawcza:dataType jest domyślnie ustawiony na JSON, a zatem jeśli nie podasz żadnego innego domyślnego typu danych i nie zwrócisz ciągu json, otrzymasz błąd parsowania. Jeśli więc zwracasz tekst w ramach procesu na żądanie, na przykład INVALID, ustaw typ danych na tekst!

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');
      };
    }
  } );

Nie podzieliłbym tego na bardziej dynamiczne akcje niż to konieczne, nawet jeśli byłoby to możliwe. Osobiście nie lubię próbować używać dynamicznej prawdziwej akcji bloku PLSQL, tylko dlatego, że bardziej niejasne jest działanie, jeśli chcesz zajmować się zwracanymi wartościami.
Po prostu ustaw przycisk tak, aby nie przesyłał strony, ale akcję zdefiniowany przez dynamiczną akcję. Następnie w akcji dynamicznej stwórz jedną prawdziwą akcję typu execute javascript i użyj wywołania ajax z wywołaniami zwrotnymi.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak DOŁĄCZYĆ do stołów, korzystając z różnych dat bez konieczności przeprowadzania procedur

  2. Zwróć wiersz z maksymalną wartością jednej kolumny na grupę

  3. Mapowanie MyBatis do pobierania listy niestandardowych typów rekordów w Oracle

  4. %ROWTYPE zmienna z nazwy tabeli

  5. Jak przechowywać wynik SQL w zmiennej i przeanalizować wynik w celu zidentyfikowania możliwego wzorca?