-- 有了SQL 為什么還需要PL/SQL
-- SQL功能很強大,但如果是單1sql語句,沒有流程控制
?
-- PL/SQL 是什么?
--不僅僅實現流程控制,同時保留SQL本身所有的功能
--還提供變量、常量等支持
--提供更多數據類型的支持
?
--第一,學習PL/SQL塊(有開頭,有結尾,還有塊之外)
<script language=javascript>
? ...
</script>
?
int a = 3;
int a = a+3;
????? :=
?
PL/SQL塊的定義
--聲明
declare
?
begin
?
? exception
???
end;
--------
String userName = "小明";
System.out.println();
dbms?? output? put_line
變量的定義
變量的賦值1
變量的賦值2(通過查詢把,結果賦值給變量,注意,必須是單條記錄)
create table t1(
?? id number primary key,
?? user_name varchar2(20)
);
insert into t1 values(1,'小軍');
commit
select user_name from t1 where id=1
?
常量的使用
-- 會話session級別的變量
-- 宿主變量
create table tt3(
?? id number primary key,
?? user_name varchar2(20),
?? city varchar2(20),
?? is_java number,
?? is_boy number,
?? age number
);
?
insert into tt3 values(1,'小明','珠海',1,1,19);
commit;
---
declare
? show_name varchar2(100);
begin
? select user_name||' '||city into show_name from tt3 where id=1;
? dbms_output.put_line(show_name);
end;
---
?
?
?
declare
? is_java number;
? age number;
? is_java_stu boolean;
? more_than_age boolean;
? xxx varchar2(100);
begin
? select is_java,age into is_java,age from tt3 where id=1;
? is_java_stu:=? (is_java=1);
? more_than_age:= (age>18);
? if (is_java_stu and more_than_age ) then
???? select '是一個java程序員' into xxx from dual;
? else
???? select '不招' into xxx from dual;???
? end if;
? dbms_output.put_line(xxx);?
end;