--------------------------------------------------------------------------------
-- ex_mpphp.sql
--------------------------------------------------------------------------------

drop table produit cascade constraint;
create table produit (
    nom varchar2(20),
    prix int,
    qte int
);
insert into produit values ('cours Java', 10, 7);
insert into produit values ('cours BD', 50, 3);
insert into produit values ('cours baby-sitting', 70, 50);
insert into produit values ('cours tango argentin', 100, 3);
insert into produit values ('cours sieste', 200, 1);
select * from produit;

Set serveroutput on

create or replace procedure p2(
    x int)
is 
begin
    insert into produit values ('cours sieste 2', 1, x);
end;
/

exec p2(77)

begin
    p2(77);
end;
/

begin p2(77); end;
/

create or replace function f(
    x int)
    return integer
is
begin
    return x+1;
end;
/

declare
    x int;
begin x := f(4); end; -- { ? = call f(4) } -- begin :1 := f(4); end; 
/

-- parse
-- la valeur de la base qui arrivera dans :1 doit être placée dans la variable PHP $z
-- (remplace le repérage par ordre de droite à gauche des ?)
-- bind by name (:1, $z) : :1 est lié à $z au moyen de son nom
-- execute
-- $z contient la valeur arrivée de la base -- remplace le get(1) (get(:1))

create or replace procedure p(
    x int,
    y out int)
is 
begin
    y:=x+1;
end;
/

create or replace procedure p3(
    x int,
    y out int,
    z out varchar2)
is 
begin
    y:=x+1;
    z:=x||' '||y||' c''est cool';
end;
/

create or replace procedure q(
    x varchar2,
    y out varchar2)
is    
begin
    y:=x||' : OK ';
end;
/

--------------------------------------------------------------------------------
