最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Oracle變量、輸入輸出、SELECT?INTO、%TYPE與%ROWTYPE詳解

 更新時間:2025年06月09日 10:56:04   作者:雷神樂樂  
這篇文章主要介紹了Oracle變量、輸入輸出、SELECT?INTO、%TYPE與%ROWTYPE,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

一、變量

1.什么是變量

在 Oracle 數據庫里,變量發(fā)揮著重要作用,它能夠存儲中間值、傳遞數據以及增強 SQL 和 PL/SQL 代碼的靈活性。

2.定義變量的語法

DECLARE
 
  --聲明的地方(聲明變量,常量,游標等等),這一塊不是必須的。
BEGIN

  --代碼的執(zhí)行的邏輯塊(就是要做什么) 
END;
BEGIN
  dbms_output.put_line('你好');
END;

BEGIN
  dbms_output.put_line('Hello World');
  dbms_output.put_line('你好');
END;

3.變量的賦值

DECLARE
  v1 varchar2(20);
  v2 date;
BEGIN
  v1 := 'Hello';
  dbms_output.put_line(v1);
  v2 := to_date('20220101', 'yyyymmdd');
  dbms_output.put_line(v2);
END;

日期格式是按照國外的格式輸出的

4.變量可以被多次賦值,可以被覆蓋

DECLARE
  v1 varchar2(20);
BEGIN
  v1 := 'Hello';
  -- dbms_output.put_line(v1);
  v1 := '你好';
  dbms_output.put_line(v1);
END;

dbms_output包主要用于調試pl/sql程序

一個變量的賦值,可以在 DECLARE 中賦初始值,也可以在 BEGIN END中進行賦值,一個變量也可以重復賦值。

練習 : 打印 數字 10 以及 打印 當前年月日 'YYYY-MM-DD'

-- 方法一:
DECLARE
  v1 number;
  v2 varchar2(20);
BEGIN
  v1 := 10;
  dbms_output.put_line(v1);
  v2 := TO_CHAR(SYSDATE, 'YYYY-MM-DD');
  dbms_output.put_line(v2);
END;

-- 方法二:
DECLARE
  v1 number := 10;
  v2 varchar2(20) := TO_CHAR(SYSDATE, 'YYYY-MM-DD');
BEGIN
  dbms_output.put_line(v1 || chr(10) || v2);
END;

chr(10)表示換行

二、輸入輸出

1.&符號表示輸入

  • 變量來源于用戶輸入值
  • &后面接變量值名稱

示例:用戶輸入一個數字,輸出它的三次冪(例如:用戶輸入2,返回8)

DECLARE
  v1 number := &input; -- 變量值名稱可自定義
  v2 number;
BEGIN
  v2 := power(v1, 3);
  -- v2:=v1*v1*v1;
  dbms_output.put_line(v2);
END;

2.關于賦值的數據類型說明

  • 如果賦值的變量是字符串類型,那么在彈出的小窗口上傳值的時候,記得添加 單引號
  • 如果賦值的變量是DATE類型,那么在彈出的小窗口上傳值的時候,要用 TO_DATE 這個函數轉換數據類型

示例:用戶輸入兩個變量并打印出來,一個字符串類型,一個是日期型

DECLARE
  v1 varchar2(20) := '&input1';
  v2 DATE := &input2;
BEGIN
  dbms_output.put_line(v1 || CHR(10) || v2);
END;

練習:打印用戶輸入的兩個值的 加減乘除 對應的值(6,3)

DECLARE
  v1 number := &input1;
  v2 number := &input2;
BEGIN
  dbms_output.put_line(v1 + v2);
  dbms_output.put_line(v1 - v2);
  dbms_output.put_line(v1 * v2);
  dbms_output.put_line(v1 / v2);
END;

三、變量賦值 SELECT INTO

  • 注意:select后面有幾個值,into后面就要有相對應的變量,注意數據類型要一致。

示例:打印某個員工的薪資(用戶輸入工號,打印他的薪資)

DECLARE
  v1    number := &input;
  v_sal number;
BEGIN
  select sal into v_sal from emp where empno = v1;
  dbms_output.put_line(v_sal);
END;

示例:接收一個員工的編號,將員工的姓名,工資,入職日期打印出來

DECLARE
  v1         number := &input;
  v_ename    varchar2(20);
  v_sal      number;
  v_hiredate date;
BEGIN
  select ename, sal, hiredate
    into v_ename, v_sal, v_hiredate
    from emp
   where empno = v1;
  dbms_output.put_line(v_ename || ',' || v_sal || ',' || TO_CHAR(v_hiredate, 'YYYY-MM-DD'));
END;

練習1:輸入一個部門編號,打印這個部門的平均薪資(保留兩位小數)

輸出樣式:10號部門的平均薪資為:2916.67

DECLARE
  v1        number := &input;
  v_avg_sal number;
BEGIN
  select round(avg(sal + nvl(comm, 0)),2) avg_sal
    into v_avg_sal  
    from emp
   where deptno = v1
   group by deptno;
  dbms_output.put_line(v1 || '號部門的平均薪資為:' || v_avg_sal);
END;

練習2:寫一個代碼塊,傳入一個員工姓名,將這個員工的工號,崗位打印到 OUTPUT 窗口來

DECLARE
  v1      varchar2(20) := '&input';
  v_empno number;
  v_job   varchar2(20);
BEGIN
  select empno, job into v_empno, v_job from emp where ename = v1;
  dbms_output.put_line(v_empno || ',' || v_job);
END;

四、使用%TYPE與%ROWTYPE無需寫變量數據類型

  • %TYPE:引用數據庫中的某張表的某列的數據類型。
  • %ROWTYPE:引用數據庫中的某張表的一行(所有字段)作為數據類型。

1.%TYPE

示例:接收一個員工的編號,將員工的姓名,工資,入職日期打印出來

DECLARE
  v_EMPNO    EMP.EMPNO%TYPE := &input;
  v_ENAME    EMP.ENAME%TYPE;
  v_SAL      EMP.SAL%TYPE;
  v_HIREDATE EMP.HIREDATE%TYPE;
BEGIN
  select ENAME, SAL, HIREDATE
    into v_ENAME, v_SAL, v_HIREDATE
    from EMP
   where EMPNO = v_EMPNO;
  dbms_output.put_line(v_ENAME || '的薪資是:' || v_SAL || '入職時間:' ||
                       TO_CHAR(v_HIREDATE,'YYYY-MM-DD'));
END;

2.%ROWTYPE

DECLARE
  v_emp emp%ROWTYPE;
BEGIN
  v_emp.EMPNO := &INPUT;
  select ENAME, SAL, HIREDATE
    into v_emp.ENAME, v_emp.SAL, v_emp.HIREDATE
    from EMP
   where EMPNO = v_emp.EMPNO;
  dbms_output.put_line(v_emp.ENAME || '的薪資是:' || v_emp.SAL || '入職時間:' ||
                       TO_CHAR(v_emp.HIREDATE, 'YYYY-MM-DD'));
END;

練習:寫一個代碼塊,傳入一個員工姓名,將這個員工的工號,崗位打印到 OUTPUT 窗口來

將剛才寫的兩個課堂練習用 %TYPE 和 %ROWTYPE 實現(xiàn)

-- %TYPE
DECLARE
  v_ENAME EMP.ENAME%TYPE := '&input';
  v_EMPNO EMP.EMPNO%TYPE;
  v_JOB   EMP.JOB%TYPE;
BEGIN
  select EMPNO, JOB into v_EMPNO, v_JOB from EMP where ENAME = v_ENAME;
  dbms_output.put_line(v_ENAME || '的工號是:' || v_EMPNO || '崗位是:' || v_JOB);
END;


-- %ROWTYPE
DECLARE
  v_EMP EMP%ROWTYPE;
BEGIN
  v_EMP.ENAME := '&INPUT';
  select EMPNO, JOB
    into v_EMP.EMPNO, v_EMP.JOB
    from EMP
   where ENAME = v_EMP.ENAME;
  dbms_output.put_line(v_EMP.ENAME || '的工號是:' || v_EMP.EMPNO || '崗位是:' ||
                       v_EMP.JOB);
END;

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Oracle19c安裝與基本配置教程(超詳細!)

    Oracle19c安裝與基本配置教程(超詳細!)

    oracle19c數據庫安裝相對于oracle12c安裝還是有些不一樣的,所以今天再來記錄一下安裝過程,下面這篇文章主要給大家介紹了關于Oracle19c安裝與基本配置的超詳細教程,需要的朋友可以參考下
    2023-01-01
  • oracle實現(xiàn)新建用戶并授權

    oracle實現(xiàn)新建用戶并授權

    本文主要介紹了在Oracle數據庫中創(chuàng)建、刪除用戶以及授權角色的方法,用戶可以通過system或sys用戶創(chuàng)建其他用戶,并且可以更改密碼或刪除用戶,系統(tǒng)提供了三種標準角色:connect、resource和dba,分別賦予不同的權限,用戶還可以創(chuàng)建自定義角色,并為其分配權限
    2026-01-01
  • Oracle使用dblink實現(xiàn)跨庫訪問的實例代碼

    Oracle使用dblink實現(xiàn)跨庫訪問的實例代碼

    dbLink是簡稱,全稱是databaselink,database link是定義一個數據庫到另一個數據庫的路徑的對象,database link允許你查詢遠程表及執(zhí)行遠程程序,本文給大家介紹了Oracle如何使用dblink實現(xiàn)跨庫訪問,需要的朋友可以參考下
    2024-03-03
  • Oracle 系統(tǒng)變量函數用法指南

    Oracle 系統(tǒng)變量函數用法指南

    在Oracle數據庫中,Oracle系統(tǒng)變量函數是經常會使用到的函數,分享下Oracle系統(tǒng)變量函數的用法。希望對大家有所幫助
    2014-08-08
  • oracle impdp network_link參數使用介紹

    oracle impdp network_link參數使用介紹

    本文將介紹oracle impdp network_link參數使用方法,需要了解更多的朋友可以參考下
    2012-11-11
  • Oracle數據庫由dataguard備庫引起的log file sync等待問題

    Oracle數據庫由dataguard備庫引起的log file sync等待問題

    這篇文章主要介紹了Oracle數據庫由dataguard備庫引起的log file sync等待,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • oracle導入導出某個schema數據的步驟

    oracle導入導出某個schema數據的步驟

    這篇文章主要介紹了oracle導入導出某個schema數據的步驟,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • oracle數據庫數據檢查方法步驟記錄

    oracle數據庫數據檢查方法步驟記錄

    這篇文章主要介紹了檢查Oracle數據庫運行狀況的步驟,包括數據庫實例狀態(tài)、性能指標、監(jiān)控和警報、日志檢查、備份和恢復、安全性以及數據完整性檢查,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-02-02
  • Oracle 安裝和卸載問題收集(集合篇)

    Oracle 安裝和卸載問題收集(集合篇)

    在安裝過程中出現(xiàn)的一些問題的解決辦法。值得收藏與學習。比如在安裝的時候如果有中文的路徑則會出現(xiàn)類似這樣的提示:加載數據庫時出錯:areasQueries
    2009-06-06
  • oracle中的一些常用函數及示例

    oracle中的一些常用函數及示例

    這篇文章主要給大家介紹了關于oracle中的一些常用函數及示例的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11

最新評論

青冈县| 甘谷县| 清远市| 嘉定区| 临漳县| 深泽县| 济南市| 乌兰浩特市| 海南省| 宝应县| 墨竹工卡县| 平定县| 高要市| 沽源县| 得荣县| 托克托县| 富川| 嘉鱼县| 外汇| 聊城市| 西宁市| 吉林省| 沅江市| 印江| 如皋市| 吉安县| 河源市| 达州市| 商南县| 石河子市| 尚义县| 大竹县| 金溪县| 商水县| 浦县| 都江堰市| 永昌县| 诏安县| 云阳县| 隆昌县| 漯河市|