PL/SQL編程中變數的聲明

來源:互聯網
上載者:User

PL/SQL編程中變數的聲明

建立第一個程式hello worldbegindbms_output.put_line('Hello world');end;/ set serveroutput on;(輸出語句到dos視窗的命令) begindbms_output.put_line('Hello world');end;/就可以在dos視窗中看到Hello world; (簡單變數的聲明)聲明變數:declarev_name varchar2(20);(變數名在前,類型在後)beginv_name := 'myname';(給變數進行賦值)dbms_output.put_line(v_name);end;/(異常處理)declarev_num number := 0;beginv_num := 2/v_num;dbms_output.put_line(v_num);exceptionwhen others thendbms_output.put_line('error'); end;變數聲明的規則:1 變數名不能使用保留字:(from,select)2 第一個字元必須是字母3 變數名最多包含30個字元4 不要與資料庫的表或者列同名5 每一行只能聲明一個變數 常用類型變數:binary_integer :整數,主要用來計數而不是用來表示欄位類型,(提高效率)number;數字類型char:定長字串;date:日期;long:長字串,最長2G;boolean 布爾類型,可以取值true,false,null值;常量的練習;declarev_temp number(1);v_count binary_integer :=0;v_sal number(7,2) :=4000.00;v_date date := sysdate;v_pi constant number(3,2) := 3.14;v_valid boolean :=false;v_name varchar2(20) not null :='MyName';begindbms_output.put_line('v_temp value' || v_temp);(||串連符)end;/注釋一句用'--' 注釋一段/* */dbms_output.put_line()不能列印boolean 變數 使用%type屬性:declare (變數宣告類型依據 表的類型變化)v_empno number(4);v_empno2emp.empno%type;v_empno3v_empno2%type;begindbms_output.put_line('Test');end; 複合變數的聲明: 第一種:Table變數類型(相當於java的數組)declaretypetype_table_emp_empnois table of emp.empno%type index by binary_integer;v_empnostype_table_emp_empno;beginv_empnos(0) := 7369;v_empnos(2) := 7839;v_empnos(-1) := 9999;--(下標可以是小於0的)(注釋)dbms_output.put_line(v_empnos(-1));end; Record變數類型:(相當於java的類)declaretypetype_record_dept isrecord(deptno dept.deptno%type,dname dept.dname%type,loc dept.loc%type);v_temp type_record_dept;beginv_temp.deptno :=50;(相當於引用去訪問成員變數)v_temp.dname :='aaaa';v_temp.loc := 'bj';dbms_output.put_line(v_temp.deptno || ' '|| v_temp.dname);end; 使用%rowtype聲明record 變數;declarev_tempdept%rowtype;beginv_temp.deptno := 50;v_temp.dname := 'aaaa';v_temp.loc := 'bj';dbms_output.put_line(v_temp.deptno || ' ' || v_temp.dname);end; SQL(select)語句在PlSQL中的應用:declarev_ename emp.ename%type;v_sal emp.sal%type;begin --plsql語句中select語句中必須有into ,必須保證返回記錄select ename,salintov_ename,v_sal from emp where empno = 7369;dbms_output.put_line(v_ename || ' ' || v_sal);end; declarev_emp emp%rowtype;beginselect *into v_emp from emp where empno = 7369;dbms_output.put_line(v_emp.empno);end; 其他SQL 陳述式在plsql中的應用:declarev_deptno dept.deptno%type := 50;v_dname dept.dname%type :='aaaa';v_loc dept.loc%type := 'bj';begin --插入數值;insert into dept2 values(v_deptno,v_dname,v_loc);commit;end;  declarev_deptnoemp2.deptno%type:= 10;v_count number;beginupdate emp2 set sal=sal/2 where deptno =v_deptno;
--select deptno into v_deptno from emp2 where empno = 7369;
-- select count(*) into v_count from emp2;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.