declare
--声明变量
begin
--语句体
exception
--异常处理
end;
--定义一个变量,定义一个常量,并赋值,并输出
--设置输出开关,在控制台可见输出结果
set serveroutput on;
declare
num number(10):=10;--变量
PI constant number(10,2):=3.14;
begin
--输出
SYS.dbms_output.put_line(num || ' '|| PI);
end;
--使用select into语句完成从表中选择数据给变量赋值
set serveroutput on;
declare
myname varchar(20);
mysal number(10,2);
begin
select ename,sal into myname,mysal
from emp;
where empno=7934;
SYS.dbms_output.put_line(myname || ' '|| mysal);
end;
--if else 判断两数大小并输出结果
set serveroutput on;
declare
num1 number(10):=100;
num2 number(10):=100;
begin
if num1>num2 then
SYS.dbms_output.put_line('大的数是:'||num1);
elsif num1<num2 then
SYS.dbms_output.put_line('大的数是:'||num2);
else
SYS.dbms_output.put_line('两数相等:'||num1);
end if;
end;
--case end 表达式
set serveroutput on;
declare
i int:=10;
begin
i:=(case
when 1<>1 then 111
when 2=2 then 222
else 333
end);
SYS.dbms_output.put_line(i);
end;
select * from emp;
select * from salgrade;
--case end查询等级
select ename,sal,(
case
when sal between 700 and 1200 then 1
when sal between 1201 and 1400 then 2
when sal between 1401 and 2000 then 3
when sal between 2001 and 5000 then 4
end
) 等级
from emp;
--select to_char(sysdate,'day') from dual;
--单独作为case end 语句:根据今天的日期,显示星期几,注意:结束是end case,每条语句有分号;
set serveroutput on;
--declare
begin
case to_char(sysdate,'day')
when '星期一' then SYS.dbms_output.put_line('今天是星期一');
when '星期二' then SYS.dbms_output.put_line('今天是星期二');
when '星期三' then SYS.dbms_output.put_line('今天是星期三');
when '星期四' then SYS.dbms_output.put_line('今天是星期四');
end case;
end;
--case end 表达式
set serveroutput on;
begin
case
when to_char(sysdate,'day') ='星期一' then SYS.dbms_output.put_line('今天是星期一');
when to_char(sysdate,'day') ='星期二' then SYS.dbms_output.put_line('今天是星期二');
when to_char(sysdate,'day') ='星期三' then SYS.dbms_output.put_line('今天是星期三');
else
SYS.dbms_output.put_line('今天是星期不知道');
end case;
end;
set serveroutput on;
declare
num number(10):=10;
PI constant number(10,2):=3.14;
begin
sys.dbms_output.put_line(num || ' '||PI);
end;
--赋值操作
select * from emp;
SELECT * FROM salgrade;
set serveroutput on;
declare
myname varchar(20);
mysal number(20,2);
begin
select ename,sal into myname,mysal
from emp
where empno=7934;
sys.dbms_output.put_line(myname || ' '||mysal);
end;
--比较两个数大小
set serveroutput on;
declare
num1 number:=50;
num2 number:=300;
begin
if num1>num2 then
sys.dbms_output.put_line('大数为'||num1);
elsif num1<num2 then
sys.dbms_output.put_line('大数为'||num2);
else
sys.dbms_output.put_line('两个数相等');
end if;
end;
--case end 表达式
set serveroutput on;
declare
i int:=10;
begin
i:=(
case
when 1<>1 then 111
when 2=2 then 222
else 333
end
);
sys.dbms_output.put_line(i);
end;
select * from emp;
SELECT * FROM salgrade;
select ename,sal,(
case
when sal between 700 and 1200 then 1
when sal between 1201 and 2000 then 2
when sal between 2000 and 3000 then 2
when sal between 3000 and 4000 then 2
end
) 等级
from emp;
--星期几
set serveroutput on;
begin
case to_char(sysdate,'day')
when '星期一' then sys.dbms_output.put_line('今天星期一');
when '星期二' then sys.dbms_output.put_line('今天星期二');
when '星期三' then sys.dbms_output.put_line('今天星期三');
when '星期四' then sys.dbms_output.put_line('今天星期四');
end case;
end;
set serveroutput on;
begin
case
when to_char(sysdate,'day')='星期一' then sys.dbms_output.put_line('今天星期一');
when to_char(sysdate,'day')='星期二' then sys.dbms_output.put_line('今天星期二');
when to_char(sysdate,'day')='星期三' then sys.dbms_output.put_line('今天星期三');
when to_char(sysdate,'day')='星期四' then sys.dbms_output.put_line('今天星期四');
end case;
end;
--九九乘法表
set serveroutput on;
declare
begin
for i in 1..9 loop
for j in 1..i loop
Dbms_Output.put(j||'*'||i||'='||i*j||' ');
if i*j<10 then
Dbms_Output.put(' ');
end if;
end loop;
-- Dbms_Output.put_line('');
Dbms_Output.new_line();
end loop;
end;
--where 做法
set serveroutput on;
declare
i int:=1;
j int:=1;
begin
while i<=9 loop
while j<=i loop
Dbms_Output.put(j || '*' || i || '='|| i*j ||' ');
if i*j<10 then
Dbms_Output.put(' ');
end if;
j:=j+1;
end loop;
--Dbms_Output.put_line('');
Dbms_Output.new_line();
j:=1;
i:=i+1;
end loop;
end;
set serveroutput on;
begin
for i in 1..9 loop
for j in 1..i loop
Dbms_Output.put(i||'*'||j||'='||i*j||' ');
dbms_output.put('');
end loop;
dbms_output.new_line;
end loop;
end;
--第二种
begin
Dbms_Output.put_line('九九乘法表');
for i in 1..9 loop
for j in 1..i loop
dbms_output.put(j||'*'||i||'='|| lpad(i*j,2,0)||' ');
end loop;
dbms_output.put_line('');
end loop;
end;
-- declare
-- i int:=0;
-- j int:=0;
-- begin
-- Dbms_Output.put_line('九九乘法表');
-- while(i<=9;j<=i)
-- dbms_Output.put(i||'*'||j||'='||i*j||' ');
-- dbms_output.put('');
-- end loop;
-- dbms_output.new_line;
--end loop;
--end;