Heim > Datenbank > Oracle > Welche Methoden gibt es zum Zuweisen von Werten zu Variablen in gespeicherten Oracle-Prozeduren?

Welche Methoden gibt es zum Zuweisen von Werten zu Variablen in gespeicherten Oracle-Prozeduren?

青灯夜游
Freigeben: 2022-01-25 16:57:38
Original
21089 Leute haben es durchsucht

Methoden zum Zuweisen von Werten zu Variablen: 1. Verwenden Sie „:=", um Werte direkt zuzuweisen. Die Syntax lautet „Variablenname:=Wert;“. 2. Verwenden Sie „Tabellenfeld aus Tabelle in Variable auswählen“. "-Anweisung; 3. Verwenden Sie die Anweisung „Sofortige SQL-Anweisungszeichenfolge in Variable ausführen“.

Welche Methoden gibt es zum Zuweisen von Werten zu Variablen in gespeicherten Oracle-Prozeduren?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, Oracle 11g-Version, Dell G3-Computer.

So deklarieren und weisen Sie Oracle-Speicherprozedurvariablen Werte zu

1 3 Möglichkeiten, Variablen zu deklarieren

Aufgeteilt nach der Deklarationsmethode des Datentyps

Methode 1: Direkt deklarieren der Datentyp. Format: Variablenname-Datentyp (Größe). Variablen müssen vor dem Schlüsselwort „begin“ erstellt werden.

V_START_DATE VARCHAR2(19);
v_num number;
Nach dem Login kopieren

Methode 2: %TYPE-Anweisung verwenden

Format: Variablenname Tabellenname.Feldname %TYPEBedeutung: Der Datentyp der Variablen stimmt mit dem Datentyp des angegebenen Felds der angegebenen Tabelle überein

--错误用法
BEGIN
v_sql varchar2(100) := 'SELECT ORGSEQ FROM BASE_ORG_INFO where orgcode=to_char(410621101233)';
Nach dem Login kopieren

Methode 3: %ROWTYPE-Deklaration verwenden Format: Variablenname Tabellenname%ROWTYPE

Bedeutung: Der Datentyp der Variablen stimmt mit dem Datentyp des angegebenen Zeilendatensatzes (alle Felder) der angegebenen Tabelle überein

V_ORGSEQ BASE_ORG_INFO.ORGSEQ%TYPE;
Nach dem Login kopieren
 Summary:

 

In the stored procedure, When declaring variables, you do not need to use the keyword "DECLARE";

 

  Variables are not case-sensitive;

  Variables must be declared before verwenden.

2. 3 Möglichkeiten der Variablenzuweisung

Methode 1: direkte Zuweisung, verwenden Sie „:="

  Nutzungsbedingungen:

Gilt für die ersten beiden Möglichkeiten der Variablendeklaration.

--VIRTUAL_CARD表整行数据
V_ROW_VIRTUAL_CARD VIRTUAL_CARD%ROWTYPE; 
Nach dem Login kopieren
 Hinweis:  

Der Variablen kann nicht direkt eine SQL-Anweisung folgen. Sie können sich auf Methode drei beziehen.

V_ORGID :=  '110';  
Nach dem Login kopieren
 

Die Deklaration und Zuweisung von Variablen kann gemeinsam erfolgen.

--错误用法
V_ORGSEQ := SELECT ORGSEQ INTO V_ORGSEQ FROM BASE_ORG_INFO;
--正确用法
V_ORGSEQ := 'SELECT ORGSEQ INTO V_ORGSEQ FROM BASE_ORG_INFO';
Nach dem Login kopieren

Methode zwei: Tabellenfeld in Variable aus Tabelle auswählen

Variante eins: Ein bestimmtes Feld der angegebenen Tabelle abfragenVerwendungsbedingungen:

Anwendbar auf die ersten beiden Methoden zum Deklarieren von Variablen. Sie können

verwenden

--正确用法
v_sql varchar2(100) := 'SELECT ORGSEQ FROM BASE_ORG_INFO where orgcode=to_char(410621101233)';
BEGIN
 /* 具体业务 */
END;
Nach dem Login kopieren
Transformation Zwei: Alle Felder der angegebenen Tabelle abfragen

Nutzungsbedingungen: Gilt nur für die dritte Art der Variablendeklaration

--根据医疗机构ID查询对应的父机构的机构序列
SELECT ORGSEQ INTO V_ORGSEQ FROM BASE_ORG_INFO
 WHERE ORGID =
       (SELECT PARENTORGID FROM BASE_ORG_INFO WHERE ORGID = V_ORGID);
Nach dem Login kopieren

Beschreibung:

Das Abfrageergebnis kann nur einen Datensatz zurückgeben;

Die abgefragten Tabellenfelder müssen alle Felder der Tabelle sein.

 Fehlerbeispiel:

--将id=5120的VIRTUAL_CARD表数据赋值给变量V_ROW_VIRTUAL_CARD
SELECT * INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T where t.id = 5120;
Nach dem Login kopieren

Methode 3: SQL-Anweisungszeichenfolge sofort in Variable ausführen

--错误举例一:查询的是所有表记录
SELECT * INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T;
--错误举例二:查询的是该表的多个字段
SELECT t.id,t.name INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T;  
Nach dem Login kopieren

3. Aufruf von Variablen

Im Allgemeinen gibt es für Variablen nur diese drei Verwendungsszenarien: Zuweisung, logische Beurteilung , arithmetische Operationen;

 Hinweis: kann nicht als Abfragespalte verwendet werden

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;
Nach dem Login kopieren

 Wie rufe ich mit %ROWTYPE deklarierte Variablen auf?  Mit der Methode „Variablenname. Tabellenfeld“ können Sie die Daten abrufen, die durch die angegebene Spalte (beliebige Spalte) der angegebenen Zeile (Rückgabezeile) in der Tabelle dargestellt werden.

--错误调用
select V_ORGSEQ from dual;
Nach dem Login kopieren
Empfohlenes Tutorial: „Oracle Tutorial

Das obige ist der detaillierte Inhalt vonWelche Methoden gibt es zum Zuweisen von Werten zu Variablen in gespeicherten Oracle-Prozeduren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage