Rumah > Soal Jawab > teks badan
Saya mempunyai prosedur tersimpan yang mengisi jadual sementara global.
1 2 3 4 5 |
|
Saya mahu menjalankan prosedur tersimpan dan memilih baris yang ditambahkan pada jadual temp.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
Kod ini tidak mendapat sebarang baris. Jadi saya memutuskan untuk meletakkan pemilihan dalam perjalanan pergi dan balik yang sama ke pangkalan data:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
Ini memberi saya ralat:
1 |
|
Jika saya meletakkan SELECT di dalam BEGIN ... END maka saya mendapat ralat ini:
1 |
|
Bagaimana untuk menjalankan prosedur tersimpan dalam PHP yang mengisi jadual sementara dan kemudian memilih daripadanya?
Ia berfungsi dalam SQL Developer tetapi tidak dalam PHP.
Gunakan:
1 2 |
|
P粉4329300812023-09-10 12:29:41
Masalah pertama adalah kerana definisi oci_execute()
默认提交,因此调用 POPULATETEMPTABLE
插入的任何行都会被 ON COMMIT DELETE ROWS 清除;
.
Betulkan ini dengan menukar kepada:
1 2 3 |
|
Masalah kedua dengan meletakkan SELECT ke dalam blok PL/SQL adalah kerana ini adalah PL/SQL yang tidak sah. Gunakan kursor rujukan atau set hasil tersirat. Lihat dokumentasi OCI8 atau Underground PHP dan Oracle Manuals