3.列印資訊
4.賦值
5.注釋:
6.使用表中的型別:
7.自定義型別:
8.鍵盤輸入資訊:
declare
--宣告部分,比如變數定義,常量定義及賦值;
begin
--需要執行的**,比如輸出資料,資料的增刪改查, dml, ddl都可以
end;
內容可變,在程式執行過程中,可以隨時賦值,即變數的內容是可以改變的,所以叫變數;變數一般以v_開頭: v_empname varchar2(50);
一旦定義賦值之後,值不能再改變;常量一般以c_開頭,定義時需要加constant關鍵字: c_empno constant number(4);
dbms_output.put_line(
);
括號中可以是列名,即把這一列資料的第一行列印;
括號中還可以是具體的資料,比如字串(需要單引號),比如數字,比如時間等等.
**語法:
變數名 :=值;
常量名 :=值;
範例:
v_empname varchar2(
50) :=
'abc'
;c_empno constant number(
4) :=
1234
;
**前加–,此時**會變紅色,表名此行**被注釋掉,不會執行
第一行**前加/最後一行**後加/,中間就是被注釋掉的部分,程式執行是不會執行;
declare
v_v1 number(
5) :=10;
c_c1 constant varchar2(
20) :=
'abc'
;begin
dbms_output.put_line(
'v_v1: '
||v_v1)
; dbms_output.put_line(
'c_c1: '
||c_c1)
; dbms_output.put_line(
'今天是2月12日');
dbms_output.put_line(trunc(sysdate));
v_v1:=20;
dbms_output.put_line(
'v_v1:'
||v_v1)
; c_c1 :=
'test'
; dbms_output.put_line(
'c_c1:'
||c_c1)
;end
;
(1).%type:沿用表中某一列的型別和長度:v_empno emp.empno%type;
(2).%rowtype:沿用一張表的資料型別,即變數跟表一樣,表中有多少列,變數中就有多少列:v_emp emp%rowtype;
(3).**塊中查詢時,需要定義乙個變數承接查詢出的資料,然後列印變數,方可將查詢結果列印出來. 輸出時,每次只能輸出一行,所以查詢時要加限制;
create
table test_0212
( name1 varchar2(50)
, age1 number(3)
);insert
into test_0212 values
('a',1
);insert
into test_0212 values
('b',2
);insert
into test_0212 values
('c',3
);insert
into test_0212 values
('d',4
);insert
into test_0212 values
('e',5
);commit
;select
*from test_0212;
declare
–宣告部分,定義變數
v_empno emp.empno%type;
v_emp emp%rowtype;
begin
--**執行部分
/*insert into test_0212 values('f',6);
commit;*/
/*delete from test_0212 where name1='a';
commit;*/
/*update test_0212 set age1=10 where name1='b';
commit;*/
select empno into v_empno from emp where rownum<2;
dbms_output.put_line(v_empno)
;select
*into v_emp from emp where rownum<2;
dbms_output.put_line(
'empno:'
||v_emp.empno||
' ename:'
||v_emp.ename||
' sal:'
||v_emp.sal)
;end
;
語法:
type 型別名 is record
( 列名1 型別(長度)
, 列名2 型別(長度)
, 列名3 型別(長度)
);
範例:
declare
type t_type is record
( name1 varchar2(50)
, job1 varchar2(50)
);v_d t_type;
begin
select ename, job into v_d from emp where rownum<2;
dbms_output.put_line(
'ename:'
||v_d.name1||
','||
'job:'
||v_d.job1)
;end
;
注意:
(1):型別定義時,型別名以t_開頭;
(2):定義變數語法: 變數名 型別名;–此處意為 變數擁有型別相同的列和屬性
(3):變數列印時,列明須保持跟型別內的列名一致: 變數名.列名
鍵盤輸入:
&提示資訊: &表示將要從鍵盤輸入,提示資訊為表明輸入的資訊內容;
方法1:
用乙個變數承接鍵盤輸入:
declare
v_name emp.ename%
type
;v_empno number(
20) :=
&編號;
begin
select ename into v_name from emp where empno=v_empno;
dbms_output.put_line(v_name)
;end
;
方法2:
直接用列名承接鍵盤輸入:
declare
v_name emp.ename%
type
;begin
select ename
into v_name
from emp
where empno =
&empno;
dbms_output.put_line(v_name)
;end
;
PL SQL程式設計基礎知識(一)
pl sql變數的宣告和賦值 declare v ename varchar2 30 定義變數 begin v ename 請輸入名字 接受鍵盤輸入 dbms output.put line v ename end put line 列印換行 put 列印不換行 接受數字輸入,第一行輸出若使用不換行...
plsql及Oracle基礎知識(一)
主要涉及知識 建立及銷毀表空間 建立及銷毀使用者 給使用者賦權 匯入匯出庫 建立表 給表新增主鍵及外來鍵約束 給表及字段新增注釋 建立函式 建立過程 建立序列 建立觸發器 建立程式包等,現將知識整理如下 1.建立表空間 首先登陸管理員賬號,或者有dba許可權的使用者。建立表空間 create tab...
plsql知識梳理 序列
1 建立序列 2 查詢序列 select seq wg.nextval from dual from後也可以是任何乙個實體表。1.dual 確實是一張表.是一張只有乙個字段,一行記錄的表.oracle資料庫內建的一張表。2.習慣上,我們稱之為 偽表 因為他不儲存主題資料.3.他的存在,是為了操作上的...