★☆

★☆
posts - 0, comments - 0, trackbacks - 0, articles - 80
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

PLSQL数据库编程基础

Posted on 2008-08-14 12:50 阅读(199) 评论(0)  编辑  收藏 所属分类: PLSQL数据库编程
PLSQL数据库编程基础:

1)基本赋值
declare
  i varchar(16);
begin
  SELECT COUNT(*)
      INTO i
   FROM t_info_log
    WHERE visit_id ='12156';
   DBMS_OUTPUT.PUT_LINE (
       'hahaa' ||
        i ||
        'hun');
end;
功能:将sql查询结果放入 i中。

2)检测数据库中的表是否存在
select count(*)
into i
from user_tables
where table_name = upper('test2_01');
i=1时,test2_01存在,i=0时,不存在。

3)sql动态执行
 if i = 1 then
        str := 'drop table test2_01 ';
        execute immediate str;
end if;
动态sql和静态sql的主要区别是,静态sql会检查表是否存在,动态sql不会检测。

4)游标的使用
a)
procedure myProcedure(empId in varchar2)
is
  sql_str long;
  temp  varchar2(32);
  cur sys_refcursor;
begin
  sql_str :='select interest_desc from code_interest0136 where emp_id ='|| empId ;
  open cur for sql_str;
  loop
    fetch cur into temp;
    dbms_output.put_line(temp);
    exit when cur%notfound;
  end loop;
  close cur; 
end myProcedure;

b)
cursor cur is select id from info_user;
loop
  open cur;
  fetch cur into my_id;
    //处理.............
  exit when cur%notfound;
end loop;

5)记录RECORD的使用
create or replace procedure table0136 is
TYPE tableRecord IS RECORD (
a1 number,
a2 varchar2(32)
);
v_ret tableRecord;
cursor cur is select * from aa_1;
a varchar2(20);

begin
open cur;
loop
fetch cur into v_ret;
DBMS_OUTPUT.put_line(v_ret.a1||'    '||v_ret.a2);
exit when cur%NOTFOUND;
end loop;
end table0136;


只有注册用户登录后才能发表评论。


网站导航: