1、使用dbms_output.put_line函数输出变量的值
declarenumm number := 5;begindbms_output.put_line(numm);end;
2、编写一个匿名程序块,来计算一个整数是不是偶数
declarenumm number := 4324322;beginif mod(numm, 2) = 0 thendbms_output.put_line(\'Yes\');elsedbms_output.put_line(\'No\');end if;end;
3、编写一个匿名程序块,来计算一个整数是不是素数
declarenum int:=2;sqr int;isprime boolean:=true;beginsqr:=sqrt(num);for i in 2..sqrloopif mod(num,i)=0thenisprime:=false;exit;end if;end loop;if isprimethendbms_output.put_line(\'YES\');elsedbms_output.put_line(\'NO\');end if;end;
4、定义一个绑定变量,用于接收一个整数n,程序计算这个数的数位和
accept num prompt \'请输入一个数字\';declare--定义变量保存用户从键盘输入的数字pnum int:= # --&地址符号,将num地址上的值赋给pnumzz int;p1 int;beginzz:=0;while pnum>0 loopp1:=mod(pnum,10);pnum:=pnum/10;zz:=zz+p1;end loop;dbms_output.put_line(zz);end;
5、定义一个替换变量,用于接收一个字符串,字符串的每个子项为一个字符串,之间用逗号隔开。程序用于提取每个子串,并每行输出一个子串。
accept num prompt \'请输入一个字符串\';declarepnum varchar(100):=# --&地址符号,将num地址上的值赋给pnumzz int;p1 number;str varchar(100);beginzz:=length(pnum);while instr(pnum,\',\')>0loopp1:=instr(pnum,\',\');str:=SUBSTR(pnum,1,p1-1);--dbms_output.put_line(pnum);dbms_output.put_line(str);pnum:=substr(pnum,p1+1,zz);--dbms_output.put_line(pnum);zz:=zz-p1-1;end loop;dbms_output.put_line(pnum);end;
6、编写一个嵌套的程序块,在内部块中使用外部块的同名变量
accept str prompt \'请输入一个字符串\';declarev_out varchar2(40);begindeclarebeginv_out:=to_char(\'&str\');dbms_output.put_line(\'使用外部块的同名变量:\' || v_out); end;end;
7、编写一个匿名程序块,用于读取employees表中的某员工的first_name,last_name,显示该员工的first_name和last_name
accept str prompt \'请输入员工id\';declarev number;first_name EMPLOYEES.FIRST_NAME%type;last_name EMPLOYEES.last_name%type;beginv:=&str;select first_name into first_name from employees where employee_id=v;select last_name into last_name from employees where employee_id=v;dbms_output.put_line(first_name);dbms_output.put_line(last_name);end;
8、编写一个匿名程序块,其中使用update语句employees表中某些员工的工资
beginupdate employees set salary=300000 where employee_id=100;end;commit;
9、编写一个匿名程序块,向employees表中插入一行记录
beginINSERT INTO \"HR\".\"EMPLOYEES\" VALUES (\'99\', \'Sttten\', \'Kitng\', \'SKttING\',\'525.123.4567\',TO_DATE(\'1986-06-17 00:00:00\', \'SYYYY-MM-DD HH24:MI:SS\'),\'AD_VP\', \'300000\', NULL, 100, \'90\');end;commit;
10、编写一个匿名程序块,删除employees表中的一行记录
begindelete from employees where employee_id=99;end;
11、使用隐式游标输出上一条sql语句影响的行数
declare n number;begin delete from employees where employee_id=99; n:=sql%rowcount; commit; dbms_output.put_line(n);end;
12、使用%rowtype类型定义变量,读取employees表的一行,并显示其对应的数据
declareyihang employees%rowtype;beginselect * into yihang from employees where employee_id=101;dbms_output.put_line(yihang.first_name);dbms_output.put_line(yihang.last_name);end;
13、使用%rowtype类型定义变量,读取employees表的一行,并更改这个变量对应的域后,插入employees表和更新employees表对应的记录
declareyihang employees%rowtype;zz number;beginselect * into yihang from employees where employee_id=100;yihang.employee_id:=98;yihang.first_name:=\'fdsfa\';yihang.salary:=32323;yihang.job_id:=\'AD_VP\';yihang.manager_id:=100;yihang.department_id:=90;insert into employees values yihang;end;commit;
14、建立一个index-by表,读取employee_id在100和110之间员工记录到这个表。然后遍历这个index-by表,显示员工的信息。
create table index_by as select * from employees where 1=1 and employee_id between 100 and 110;select * from index_by;