par
Nanard » 14 mars 2013, 17:34
Bon, j'ai vu, j'ai lu mais j'ai pas vaincu ! Alors j'ai utilisé une méthode de salaud mais... qui fonctionne.
J'ai déclaré une variable $query dans laquelle j'ai inséré chaque ligne avec des concaténations.
Oui, je sais, pas la peine d'en rajouter, j'ai assez honte comme ça...
$query = "Declare ".
"total2 number NOT NULL DEFAULT 0;".
"NB number NOT NULL DEFAULT 0;".
"LEVEL number NOT NULL DEFAULT 0;".
"CURSOR F_PACK IS SELECT * FROM SAP_PACKAGES WHERE PACKAGE_TYPE = 'HF' ORDER BY PACKAGE_ID ASC ;".
"Begin ".
"SELECT MAX(PACKAGE_LEVEL) INTO LEVEL FROM SAP_PACKAGES ;".
"loop ".
"For F in F_PACK loop ".
"SELECT COUNT(*) INTO NB FROM SAP_PACKAGES WHERE PACKAGE_PARENT_ID = F.PACKAGE_ID ;".
"If NB = 0 then ".
"DELETE FROM SAP_PACKAGES WHERE PACKAGE_ID = F.PACKAGE_ID ;".
"total2 := total2 +1 ;".
"end if ;".
"end loop ;".
"LEVEL := LEVEL - 1;".
"exit when LEVEL = 0 ;".
"end loop ;".
"DBMS_OUTPUT.PUT_LINE(total2 || ' suppression(s) ');".
"end ;";
Bon, j'ai vu, j'ai lu mais j'ai pas vaincu ! Alors j'ai utilisé une méthode de salaud mais... qui fonctionne.
J'ai déclaré une variable $query dans laquelle j'ai inséré chaque ligne avec des concaténations.
Oui, je sais, pas la peine d'en rajouter, j'ai assez honte comme ça...
[php]$query = "Declare ".
"total2 number NOT NULL DEFAULT 0;".
"NB number NOT NULL DEFAULT 0;".
"LEVEL number NOT NULL DEFAULT 0;".
"CURSOR F_PACK IS SELECT * FROM SAP_PACKAGES WHERE PACKAGE_TYPE = 'HF' ORDER BY PACKAGE_ID ASC ;".
"Begin ".
"SELECT MAX(PACKAGE_LEVEL) INTO LEVEL FROM SAP_PACKAGES ;".
"loop ".
"For F in F_PACK loop ".
"SELECT COUNT(*) INTO NB FROM SAP_PACKAGES WHERE PACKAGE_PARENT_ID = F.PACKAGE_ID ;".
"If NB = 0 then ".
"DELETE FROM SAP_PACKAGES WHERE PACKAGE_ID = F.PACKAGE_ID ;".
"total2 := total2 +1 ;".
"end if ;".
"end loop ;".
"LEVEL := LEVEL - 1;".
"exit when LEVEL = 0 ;".
"end loop ;".
"DBMS_OUTPUT.PUT_LINE(total2 || ' suppression(s) ');".
"end ;";[/php]