sql >> Database teknologi >  >> RDS >> Oracle

Kaldning af en Oracle-funktion via Ajax til validering på stedet i Oracle APEX v4.2.2

Ajax + apex 4.2 =apex.server. proces-api
Det kræver, at du har en proces på on-demand-procespunktet på siden eller en ansøgningsproces. I den skal du kalde din funktion og angive parametrene, som kan være sideelementerne. For at give et retur, skriv værdier til http-bufferen med kald til 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;

Du kan nemt levere apex.server.process med sideelementer. Yderligere håndtering er alt i javascript.
Advarsel:datatypen er som standard sat til JSON, og hvis du ikke angiver en anden standard datatype og ikke returnerer en json-streng, vil du få en parsingsfejl. Så hvis du returnerer en tekst inden for din on-demand-proces, såsom Ugyldig, skal du sørge for at indstille datatypen til 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');
      };
    }
  } );

Jeg ville ikke dele dette op i mere dynamiske handlinger end nødvendigt, selvom det måske er muligt. Jeg personligt er ikke vild med at forsøge at bruge en PLSQL blok dynamisk sand handling, bare fordi det er mere uklart at handle på, hvis du vil håndtere returværdier.
Bare indstil din knap til ikke at sende siden, men handling defineret af dynamisk handling. Så i den dynamiske handling opret en ægte handling af typen eksekver javascript, og brug ajax-kaldet med tilbagekald(er) der.




  1. Hvordan importerer man sql-fil til databasen og ignorerer X-linjer i filen?

  2. Hentning af de mest almindelige søgeord fra en tsvector-kolonne

  3. En pålidelig måde at verificere T-SQL-lagrede procedurer på

  4. MySQL beregner afstand (simpel løsning)