變數與常量

來源:互聯網
上載者:User

PL/SQL允許我們聲明常量和變數,但是常量和變數必須是在聲明後才可以使用,向前引用(forward reference)是不允許的。

1、變數聲明
變數可以是任何SQL類型,如CHAR,DATE或NUMBER等,也可以是PL/SQL類型,BOOLEAN或BINARY_INTEGER等。聲明方法如下:

part_no NUMBER(4);
in_stock BOOLEAN;

我們還可以用TABLE VARRAY RECORD這些複合類型來聲明巢狀表格、變長數組(縮寫為varray)和記錄。

2、變數賦值

我們可以用三種方式為變數賦值

第一種,直接使用賦值操作符":=":
tax         := price * tax_rate;
valid_id    := FALSE;
bonus       := current_salary * 0.10;
wages       := gross_pay(emp_id,
                         st_hrs,
                         ot_hrs
                        ) - deductions;

第二種,利用資料庫中查詢的結果為變數賦值:

SELECT sal * 0.10
  INTO bonus
  FROM emp
 WHERE empno = emp_id;

第三種,把變數作為一個OUT或IN OUT模式的參數傳遞給子程式,然後由子程式為其賦值。如下例所示,IN OUT參數可以為被調用的子程式傳遞初始值然後子程式將更新後的新值返回給調用程式:

DECLARE
  my_sal REAL(7,2);
  PROCEDURE adjust_salary (emp_id INT, salary IN OUT REAL) IS ...
BEGIN
  SELECT AVG(sal)
    INTO my_sal
    FROM emp;
  adjust_salary(7788, my_sal); -- assigns a new value to my_sal

? 聲明常量

聲明常量跟聲明變數類似,但是要加一個CONSTANT關鍵字,並在聲明時為其賦上初始值。下例中,我們聲明一個名為credit_limit的常量:

credit_limit CONSTANT REAL := 5000.00;

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.