Rumah pangkalan data Oracle c memanggil prosedur tersimpan oracle

c memanggil prosedur tersimpan oracle

May 13, 2023 pm 03:27 PM

Dalam pembangunan perisian, memanggil prosedur tersimpan adalah salah satu operasi pangkalan data biasa. Oracle ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan, jadi apabila memanggil prosedur tersimpan, anda perlu menggunakan antara muka yang disediakan untuk menyelesaikan proses tersebut. Artikel ini akan memperkenalkan cara menggunakan bahasa C untuk memanggil prosedur tersimpan Oracle.

1. Pengenalan kepada prosedur tersimpan Oracle

Prosedur tersimpan Oracle ialah blok kod pratakrif yang digunakan untuk melaksanakan tugas atau operasi tertentu. Selepas anda membuat prosedur tersimpan dalam pangkalan data, anda boleh memanggilnya dalam program anda dan lulus parameter dan nilai pulangan. Kelebihan ini ialah prosedur tersimpan boleh digunakan semula, di samping meningkatkan kecekapan dan keselamatan program.

2. Gunakan bahasa C untuk memanggil prosedur tersimpan Oracle

Sebelum menggunakan bahasa C untuk memanggil prosedur tersimpan Oracle, kita perlu memastikan pemacu Oracle ODBC dipasang untuk berkomunikasi dengan pangkalan data Oracle. Seterusnya, kami akan menunjukkan cara memanggil prosedur tersimpan Oracle menggunakan bahasa C melalui langkah berikut:

1 Sambung ke pangkalan data Oracle

Sebelum menggunakan pemacu Oracle ODBC, kita perlu mencipta satu. Sumber data ODBC. Sumber data ODBC boleh dibuat melalui "Sumber Data (ODBC)" dalam "Panel Kawalan" sistem pengendalian Windows. Anda juga boleh menentukan nama sumber data dalam program, seperti berikut:

SQLRETURN rc;
SQLHDBC hdbc;
SQLAllocHandle(SQL_HANDLE_DBC, SQL_NULL_HANDLE, &hdbc);
rc = SQLConnect(hdbc, (SQLCHAR*)datasource_name, SQL_NTS, (SQLCHAR*)uid, SQL_NTS, (SQLCHAR*)pwd, SQL_NTS);
if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) {
    printf("connect to oracle failed
");
    return;
}
Salin selepas log masuk

2. Sediakan pernyataan SQL

Sebelum memanggil prosedur tersimpan, anda perlu menyediakan pernyataan SQL supaya ia boleh diserahkan kepada pelaksanaan Pangkalan Data. Contoh berikut menunjukkan cara menyediakan pernyataan SQL mudah yang melaksanakan prosedur tersimpan bernama "get_employee":

SQLHSTMT hstmt;
SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
SQLCHAR* sql = (SQLCHAR*)"{call get_employee(?, ?, ?, ?)}";
SQLINTEGER param1 = 10, param2 = 3;
SQLDOUBLE param3 = 0.0;
SQLCHAR param4[20];
rc = SQLPrepare(hstmt, sql, SQL_NTS);
if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) {
    printf("prepare sql failed
");
    return;
}
rc = SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &param1, 0, NULL);
rc = SQLBindParameter(hstmt, 2, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0, &param2, 0, NULL);
rc = SQLBindParameter(hstmt, 3, SQL_PARAM_OUTPUT, SQL_C_DOUBLE, SQL_DOUBLE, 0, 0, &param3, 0, NULL);
rc = SQLBindParameter(hstmt, 4, SQL_PARAM_OUTPUT, SQL_C_CHAR, SQL_VARCHAR, 20, 0, param4, sizeof(param4), NULL);
Salin selepas log masuk

Dalam contoh di atas, pernyataan SQL disediakan menggunakan fungsi "SQLPrepare", Dan gunakan "SQLBindParameter " berfungsi untuk mengikat parameter kepada pemegang tempat "?" bagi pernyataan. Parameter pertama dan kedua bagi prosedur tersimpan masing-masing ialah parameter input, dan parameter ketiga dan keempat ialah parameter keluaran masing-masing.

3 Jalankan pernyataan SQL

Selepas pernyataan SQL disediakan dan parameter terikat, kita boleh menggunakan fungsi "SQLEexecute" untuk melaksanakan pernyataan. Apabila prosedur tersimpan dilaksanakan, ia secara automatik mencipta kursor di mana nilai parameter output boleh diambil. Berikut ialah contoh melaksanakan pernyataan SQL:

rc = SQLExecute(hstmt);
if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) {
    printf("execute sql failed
");
    return;
}
rc = SQLFetch(hstmt);
if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO && rc != SQL_NO_DATA) {
    printf("fetch data failed
");
    return;
}
Salin selepas log masuk

Dalam contoh di atas, pernyataan SQL dilaksanakan melalui fungsi "SQLEexecute" dan nilai parameter output diperoleh dalam fungsi "SQLFetch".

4. Putuskan sambungan daripada pangkalan data Oracle

Selepas melengkapkan panggilan ke prosedur tersimpan, anda perlu menggunakan fungsi "SQLDisconnect" untuk memutuskan sambungan daripada pangkalan data Oracle untuk melepaskan sumber yang diperuntukkan. Contoh berikut menunjukkan cara memutuskan sambungan daripada pangkalan data Oracle:

SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
Salin selepas log masuk

Melalui langkah di atas, kita boleh menggunakan bahasa C untuk memanggil prosedur tersimpan Oracle.

3. Ringkasan

Artikel ini memperkenalkan cara menggunakan bahasa C untuk memanggil prosedur tersimpan Oracle, yang terutamanya termasuk menyambung ke pangkalan data Oracle, menyediakan pernyataan SQL, melaksanakan pernyataan SQL dan memutuskan sambungan daripada pangkalan data Oracle, dan lain-lain langkah. Dalam pembangunan sebenar, pengubahsuaian dan pelarasan boleh dibuat mengikut keperluan tertentu. Melalui pengenalan artikel ini, saya percaya bahawa anda mempunyai pemahaman dan pemahaman tertentu tentang menggunakan bahasa C untuk memanggil prosedur tersimpan Oracle.

Atas ialah kandungan terperinci c memanggil prosedur tersimpan oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimanakah saya menggunakan kursor dalam PL/SQL untuk memproses pelbagai baris data? Bagaimanakah saya menggunakan kursor dalam PL/SQL untuk memproses pelbagai baris data? Mar 13, 2025 pm 01:16 PM

Artikel ini menerangkan kursor PL/SQL untuk pemprosesan data berturut-turut. Ia memperincikan pengisytiharan kursor, pembukaan, pengambilan, dan penutupan, membandingkan kursor tersirat, eksplisit, dan ref. Teknik untuk pengendalian dataset besar yang cekap dan menggunakan gelung

Apakah segmen yang biasa digunakan dalam pangkalan data Oracle Apakah segmen yang biasa digunakan dalam pangkalan data Oracle Mar 04, 2025 pm 06:08 PM

Artikel ini mengkaji jenis segmen pangkalan data Oracle (data, indeks, pengembalian semula, sementara), implikasi prestasi mereka, dan pengurusan. Ia menekankan memilih jenis segmen yang sesuai berdasarkan beban kerja dan ciri -ciri data untuk kecekapan yang optimum

Apakah alat ujian prestasi untuk pangkalan data oracle Apakah alat ujian prestasi untuk pangkalan data oracle Mar 04, 2025 pm 06:11 PM

Artikel ini meneroka alat ujian prestasi pangkalan data Oracle. Ia membincangkan memilih alat yang betul berdasarkan belanjawan, kerumitan, dan ciri -ciri seperti pemantauan, diagnostik, simulasi beban kerja, dan pelaporan. Artikel ini juga memperincikan BO yang berkesan

Cara memuat turun pangkalan data oracle Cara memuat turun pangkalan data oracle Mar 04, 2025 pm 06:07 PM

Artikel ini membimbing pengguna melalui memuat turun pangkalan data Oracle. Ia memperincikan proses, menekankan pemilihan edisi (Express, Standard, Enterprise), keserasian platform, dan penerimaan perjanjian lesen. Keperluan Sistem dan Edisi Suitabil

Apakah alat klien pemasangan pangkalan data Oracle? Apakah alat klien pemasangan pangkalan data Oracle? Mar 04, 2025 pm 06:09 PM

Artikel ini meneroka alat klien pangkalan data Oracle, penting untuk berinteraksi dengan pangkalan data Oracle tanpa pemasangan pelayan penuh. Ia memperincikan alat yang biasa digunakan seperti sql*plus, pemaju sql, pengurus perusahaan, dan rman, menonjolkan keseronokan mereka

Apakah ruang meja lalai yang disediakan oleh pangkalan data Oracle? Apakah ruang meja lalai yang disediakan oleh pangkalan data Oracle? Mar 04, 2025 pm 06:10 PM

Artikel ini mengkaji ruang meja lalai Oracle (sistem, sysaux, pengguna), ciri -ciri mereka, kaedah pengenalan, dan implikasi prestasi. Ia berhujah menentang bergantung pada mungkir, menekankan pentingnya membuat tablespac berasingan

Bagaimana saya membuat pengguna dan peranan dalam oracle? Bagaimana saya membuat pengguna dan peranan dalam oracle? Mar 17, 2025 pm 06:41 PM

Artikel ini menerangkan cara membuat pengguna dan peranan dalam Oracle menggunakan arahan SQL, dan membincangkan amalan terbaik untuk menguruskan kebenaran pengguna, termasuk menggunakan peranan, mengikuti prinsip keistimewaan paling sedikit, dan audit biasa.

Bagaimanakah saya menggunakan pelekat data oracle dan subsetting untuk melindungi data sensitif? Bagaimanakah saya menggunakan pelekat data oracle dan subsetting untuk melindungi data sensitif? Mar 13, 2025 pm 01:19 PM

Butiran artikel ini Oracle Data Masking and Subsetting (DMS), penyelesaian untuk melindungi data sensitif. Ia meliputi mengenal pasti data sensitif, menentukan peraturan pelekat (shuffling, penggantian, rawak), menubuhkan pekerjaan, pemantauan, dan penyebaran

See all articles