Sveiki!
Situācija tāda, ka oracle datu bāzē ir procedūra kuru man nav iespējams rediģēt. Procedūra pieņem skaitli, pēc kura atgriež citu skaitli: proc(num in out number(8)); Problēma tā, ka, lai dabūtu ārā to kas ir vajadzīgs, man ir jāpadod tukša vērtība NULL.
<?
...
$stid = oci_parse($conn, "begin proc(:num); end;");
$num = " ";
oci_bind_by_name($stid, ":num", $num);
oci_execute($stid);
?>
Problēma tā, ka šādi es izsaucu kļūdas paziņojumu: Warning: oci_execute(): ORA-06502: PL/SQL: numeric or value error: character to number conversion error ORA-06512: at line 1
Mēģināju gan iekš SQL to :num pārvērst ar funkciju to_number(:num) gan arī iekš oci_bind_by_name norādīt tipu SQLT_INT. Atpakaļ saņēmu attiecīgi kļūdas paziņojumus:
ORA-06550: line 1, column 49: PLS-00363: expression 'TO_NUMBER(ISN)' cannot be used as an assignment target ORA-06550: line 1, column 7: PL/SQL: Statement ignored
oci_execute(): ORA-01460: unimplemented or unreasonable conversion requested
Jautājums - vai ir kāda ideja, kā es vēl varētu mēģināt padot procedūrai NULL vērtību?