Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Richiamo di funzioni

  1. #1

    Richiamo di funzioni

    Buongiorno a tutti...
    Avrei bisogno di richiamare una stored procedure (pl/sql) in php.
    Sapete dirmi come si fa???
    Grazie in anticipo

  2. #2
    Allo stesso modo in cui esegui una query.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Questo è il codice che ho scritto io:
    Codice PHP:
     <?php
    $a
    =$_POST['a'];
    $b=$_POST['b'];
    if (!
    $con=oci_connect("console""console""sigla40t.zoo.intra")){die;}
    else{
        
    $s=oci_parse($con,"BEGIN :c :=cons_utility.prova(:a,:b); END;");
        
    oci_bind_by_name($s,":c",$c);
        
    oci_bind_by_name($s,":a",$a);
        
    oci_bind_by_name($s,":b",$b);
        
    oci_execute($s);
        print 
    "[".$c."]";
        
    oci_close($con);
    }
    ?>
    Questa è la store procedure che ho creato:
    codice:
    function prova(a number, b number) return number is
    
       c number;
    
      begin
    
        c:= a + b;
    
        return (c);
    
      end;
    Mi funziona finchè il risultato non ha due cifre. Se faccio la somma di 6 e 4 non funziona mi da questo errore:
    Warning: oci_execute() [function.oci-execute]: ORA-06502: PL/SQL: errore : buffer della stringa di caratteri troppo piccolo di numero o valore ORA-06512: a line 1, perchè?

  4. #4
    Ho risolto il problema...modificando questa riga:

    Codice PHP:
    oci_bind_by_name($s,":c",$c); 
    così:

    Codice PHP:
    oci_bind_by_name($s,":c",$c40); 
    anche se non ho per niente idea di cosa faccia 40...mah!!! Avete qualche idea???
    L'ho trovato sul sito ufficiale di PHP ma non c'è spiegato perchè lo mette!!

    http://php.net/manual/en/function.oci-parse.php (Secondo esempio)
    Help me!!!

  5. #5
    Perchè cerchi la documentazione della funzione oci_parse() quando invece utilizzi la funzione oci_bind_by_name() ?

    [maxlength]
    Sets the maximum length for the data. If you set it to -1, this function will use the current length of variable to set the maximum length. In this case the variable must exist and contain data when oci_bind_by_name() is called.

    dovresti provare con -1
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Inizialmente avevo cercato oci_parse e lì avevo trovato quell'esempio...da quello sono riuscita a fare il mio ma avevo tralasciato il 40 ora l'ho messo e funziona! Non c'avevo pensato di guardare l'oci_bind_by_name...
    Grazie e scusa...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.