Kaedah untuk memberikan nilai kepada pembolehubah: 1. Gunakan ":=" untuk menetapkan nilai secara langsung, sintaksnya ialah "nama pembolehubah:=value;" 2. Gunakan medan "pilih jadual ke dalam pembolehubah dari penyataan" jadual; 3. Gunakan penyataan " laksanakan rentetan pernyataan sql segera ke dalam pembolehubah".
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi Oracle 11g, komputer Dell G3.
1. 3 cara untuk mengisytiharkan pembolehubah
Bezakan mengikut kaedah pengisytiharan jenis data
Kaedah 1: Istihar terus jenis data
Format: jenis data nama ubah (saiz)
V_START_DATE VARCHAR2(19); v_num number;
Nota:
Apabila ditetapkan kepada jenis rentetan, saiz perlu ditentukan, jika tidak, ralat akan dilaporkan; pengisytiharan pembolehubah mestilah dalam kekunci "mulakan" Jalankan sebelum perkataan.
Kaedah 2: Gunakan pernyataan %TYPE
--错误用法 BEGIN v_sql varchar2(100) := 'SELECT ORGSEQ FROM BASE_ORG_INFO where orgcode=to_char(410621101233)';
Format: nama jadual nama pembolehubah. Nama medan %TYPEMaksud: Jenis data pembolehubah adalah konsisten dengan jenis data medan yang ditentukan dalam jadual yang ditentukan
Kaedah 3: Gunakan pernyataan %ROWTYPE Format: nama pembolehubah nama jadual % ROWTYPEV_ORGSEQ BASE_ORG_INFO.ORGSEQ%TYPE;
Maksud : Jenis data pembolehubah ini konsisten dengan jenis data rekod baris yang ditentukan (semua medan) jadual yang ditentukan
Ringkasan:--VIRTUAL_CARD表整行数据 V_ROW_VIRTUAL_CARD VIRTUAL_CARD%ROWTYPE;
Pembolehubah mesti digunakan sebelum menggunakan pernyataan.
2 cara penugasan berubah
Kaedah 1: Tugasan langsung, gunakan ":="
Syarat penggunaan: terpakai pada dua cara pertama untuk mengisytiharkan pembolehubah.
Penjelasan:Pembolehubah tidak boleh diikuti secara langsung dengan penyataan sql tidak akan dilaksanakan Anda boleh merujuk kepada kaedah tiga.
Pengisytiharan pembolehubah dan tugasan boleh dilakukan bersama.
V_ORGID := '110';
Kaedah 2: pilih medan jadual ke dalam pembolehubah daripada jadual
--错误用法 V_ORGSEQ := SELECT ORGSEQ INTO V_ORGSEQ FROM BASE_ORG_INFO; --正确用法 V_ORGSEQ := 'SELECT ORGSEQ INTO V_ORGSEQ FROM BASE_ORG_INFO';
Syarat penggunaan: Dua cara pertama untuk mengisytiharkan pembolehubah boleh digunakan
--正确用法 v_sql varchar2(100) := 'SELECT ORGSEQ FROM BASE_ORG_INFO where orgcode=to_char(410621101233)'; BEGIN /* 具体业务 */ END;
Variasi 2: Tanya semua medan jadual yang ditentukan
Syarat penggunaan:Hanya terpakai kepada cara ketiga untuk mengisytiharkan pembolehubah
Penerangan:
--根据医疗机构ID查询对应的父机构的机构序列 SELECT ORGSEQ INTO V_ORGSEQ FROM BASE_ORG_INFO WHERE ORGID = (SELECT PARENTORGID FROM BASE_ORG_INFO WHERE ORGID = V_ORGID);
Hasil pertanyaan hanya boleh mengembalikan satu rekod;
Medan jadual yang ditanya mestilah semua medan dalam jadual.
Contoh ralat:--将id=5120的VIRTUAL_CARD表数据赋值给变量V_ROW_VIRTUAL_CARD SELECT * INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T where t.id = 5120;
Kaedah 3: laksanakan rentetan pernyataan sql segera ke dalam pembolehubah
3. Memanggil pembolehubah
--错误举例一:查询的是所有表记录 SELECT * INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T; --错误举例二:查询的是该表的多个字段 SELECT t.id,t.name INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T;
Bagaimana untuk memanggil pembolehubah yang diisytiharkan menggunakan %ROWTYPE?
declare/* 存储过程,不需要声明 */ v_sql varchar2(100); V_ORGSEQ varchar2(100); begin v_sql := 'SELECT ORGSEQ FROM BASE_ORG_INFO where orgcode=to_char(410621101233)'; --V_ORGSEQ赋值 execute immediate v_sql INTO V_ORGSEQ; --打印结果 DBMS_OUTPUT.put_line(V_ORGSEQ); END;
Menggunakan kaedah "nama pembolehubah. medan jadual", anda boleh mendapatkan data yang diwakili oleh lajur yang ditentukan (mana-mana lajur) baris yang ditentukan (baris kembali) dalam jadual. Tutorial yang disyorkan: "Tutorial Oracle
"Atas ialah kandungan terperinci Apakah kaedah untuk memberikan nilai kepada pembolehubah dalam prosedur tersimpan Oracle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!