目錄
Oracle預存程​​序變數宣告與賦值的方法
首頁 資料庫 Oracle oracle預存程​​序中賦值給變數的方法有哪些

oracle預存程​​序中賦值給變數的方法有哪些

Jan 25, 2022 pm 04:57 PM
oracle 變數賦值 儲存過程

賦值給變數的方法:1、使用「:=」直接賦值,語法「變數名:=值;」;2、使用「select 表欄位into 變數from 表」語句;3、使用「 execute immediate sql語句字串into 變數」語句。

oracle預存程​​序中賦值給變數的方法有哪些

本教學操作環境:Windows7系統、Oracle 11g版、Dell G3電腦。

Oracle預存程​​序變數宣告與賦值的方法

1.宣告變數的3種方式

##1.宣告變數的3種方式

依照資料型別的宣告方式區分

方式一:直接宣告資料型別

格式:變數名稱資料型別(大小)

V_START_DATE VARCHAR2(19);
v_num number;
登入後複製
  說明:

  設定為字串型別時,需要指定大小,否則報錯;

  

變數的宣告必須在​​"begin"關鍵字之前進行。

--错误用法
BEGIN
v_sql varchar2(100) := 'SELECT ORGSEQ FROM BASE_ORG_INFO where orgcode=to_char(410621101233)';
登入後複製

方式二:使用%TYPE宣告

#格式:變數名稱表名.欄位名稱%TYPE

意義:該變數的資料型別與指定資料表的指定欄位的資料型別一致

V_ORGSEQ BASE_ORG_INFO.ORGSEQ%TYPE;
登入後複製

  方式三:使用%ROWTYPE宣告  格式:變數名稱表名%ROWTYPE#   格式:變數名稱表名%ROWTYPE

」。資料類型與指定表格的指定行記錄(所有欄位)的資料類型一致

--VIRTUAL_CARD表整行数据
V_ROW_VIRTUAL_CARD VIRTUAL_CARD%ROWTYPE; 
登入後複製
  小結:

  在儲存過程中,宣告變數時,不需要使用關鍵字" DECLARE";

 

  變數不區分大小寫;

  變數在使用前必須宣告。

2.變數賦值的3種方式

方式一:直接賦值,使用":="

  使用條件:適用於宣告變數的前2種方式。

V_ORGID :=  '110';  
登入後複製

  說明:  

變數後面跟不能直接是sql語句,sql不會執行,可以參考方式三。

--错误用法
V_ORGSEQ := SELECT ORGSEQ INTO V_ORGSEQ FROM BASE_ORG_INFO;
--正确用法
V_ORGSEQ := 'SELECT ORGSEQ INTO V_ORGSEQ FROM BASE_ORG_INFO';
登入後複製

  變數的宣告和賦值可以一塊進行。

--正确用法
v_sql varchar2(100) := 'SELECT ORGSEQ FROM BASE_ORG_INFO where orgcode=to_char(410621101233)';
BEGIN
 /* 具体业务 */
END;
登入後複製

方式二:select 表格​​欄位into 變數from 表

變形一:查詢指定表的一個指定欄位

  使用條件:

適用於宣告變數的前2種方式可以使用

--根据医疗机构ID查询对应的父机构的机构序列
SELECT ORGSEQ INTO V_ORGSEQ FROM BASE_ORG_INFO
 WHERE ORGID =
       (SELECT PARENTORGID FROM BASE_ORG_INFO WHERE ORGID = V_ORGID);
登入後複製
變形二:查詢指定表格的所有欄位

  使用條件:只適用於聲明變數的第3種方式

--将id=5120的VIRTUAL_CARD表数据赋值给变量V_ROW_VIRTUAL_CARD
SELECT * INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T where t.id = 5120;
登入後複製

  說明:

#  查詢結果只能傳回一筆記錄;

#  ##  

#的表欄位必須是該表的所有欄位。

  錯誤範例:

方式三:execute immediate sql語句字串into 變數######
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;
登入後複製
#########3 .變數的呼叫############  一般來說,變數只有這3種使用場景:賦值、邏輯判斷、算術運算;######  說明:###不能用作查詢列######
--错误调用
select V_ORGSEQ from dual;
登入後複製
###  使用%ROWTYPE宣告的變數如何呼叫? ######  利用"變數名.表格欄位"的方式可以取到該表中指定行(傳回行)的指定列(任意列)所代表的資料。 ###
--V_ROW_VIRTUAL_CARD赋值
SELECT * INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T where t.id = 5120;
--调用
DBMS_OUTPUT.put_line(V_ROW_VIRTUAL_CARD.ID);  
登入後複製
###推薦教學:《###Oracle教學###》###

以上是oracle預存程​​序中賦值給變數的方法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

oracle如何查表空間大小 oracle如何查表空間大小 Apr 11, 2025 pm 08:15 PM

要查詢 Oracle 表空間大小,請遵循以下步驟:確定表空間名稱,方法是運行查詢:SELECT tablespace_name FROM dba_tablespaces;查詢表空間大小,方法是運行查詢:SELECT sum(bytes) AS total_size, sum(bytes_free) AS available_space, sum(bytes) - sum(bytes_free) AS used_space FROM dba_data_files WHERE tablespace_

oracle如何獲取時間 oracle如何獲取時間 Apr 11, 2025 pm 08:09 PM

在 Oracle 中獲取時間有以下方法:CURRENT_TIMESTAMP:返回當前系統時間,精確到秒。 SYSTIMESTAMP:比 CURRENT_TIMESTAMP 更準確,精確到納秒。 SYSDATE:返回當前系統日期,不含時間部分。 TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'): 將當前系統日期和時間轉換為特定格式。 EXTRACT:從時間值中提取特定部分,如年份、月份或小時。

oracle視圖如何加密 oracle視圖如何加密 Apr 11, 2025 pm 08:30 PM

Oracle 視圖加密允許您加密視圖中的數據,從而增強敏感信息安全性。步驟包括:1) 創建主加密密鑰 (MEk);2) 創建加密視圖,指定要加密的視圖和 MEk;3) 授權用戶訪問加密視圖。加密視圖工作原理:當用戶查詢加密視圖時,Oracle 使用 MEk 解密數據,確保只有授權用戶可以訪問可讀數據。

oracle如何查看實例名 oracle如何查看實例名 Apr 11, 2025 pm 08:18 PM

在 Oracle 中查看實例名的方法有三種:命令行中使用 "sqlplus" 和 "select instance_name from v$instance;" 命令。在 SQL*Plus 中使用 "show instance_name;" 命令。通過操作系統的任務管理器、Oracle Enterprise Manager 或檢查環境變量 (Linux 上的 ORACLE_SID)。

Oracle安裝失敗如何卸載 Oracle安裝失敗如何卸載 Apr 11, 2025 pm 08:24 PM

Oracle 安裝失敗的卸載方法:關閉 Oracle 服務,刪除 Oracle 程序文件和註冊表項,卸載 Oracle 環境變量,重新啟動計算機。若卸載失敗,可使用 Oracle 通用卸載工具手動卸載。

oracle數據庫如何導入 oracle數據庫如何導入 Apr 11, 2025 pm 08:06 PM

數據導入方法:1. 使用 SQLLoader 實用程序:準備數據文件、創建控製文件、運行 SQLLoader;2. 使用 IMP/EXP 工具:導出數據、導入數據。提示:1. 大數據集推薦 SQL*Loader;2. 目標表應存在,列定義匹配;3. 導入後需驗證數據完整性。

oracle無效數字如何排查 oracle無效數字如何排查 Apr 11, 2025 pm 08:27 PM

Oracle 無效數字錯誤可能由數據類型不匹配、數字溢出、數據轉換錯誤或數據損壞引起。排查步驟包括檢查數據類型、檢測數字溢出、檢查數據轉換、排查數據損壞,並探索其他可能的解決方案,如配置 NLS_NUMERIC_CHARACTERS 參數和啟用數據驗證日誌記錄。

oracle如何設置用戶 oracle如何設置用戶 Apr 11, 2025 pm 08:21 PM

在 Oracle 中創建用戶需遵循以下步驟:使用 CREATE USER 語句創建新用戶。使用 GRANT 語句授予必要權限。可選:使用 RESOURCE 語句設置配額。配置其他選項,如默認角色和臨時表空間。

See all articles