pl/sql学习笔记(参照博客园)

来源:互联网 发布:js计算时间差小时 编辑:程序博客网 时间:2024/04/29 18:28

scott 用户解锁

拿system登录进去之后,执行下面的命令:

SQL> alter user scott account unlock;

 

 

PL/SQL声明格式:

 DECLARE      --声明部分: 在此声明PL/SQL用到的变量,类型及游标,以及局部的存储过程和函数  BEGIN    -- 执行部分:  过程及SQL 语句  , 即程序的主要部分  EXCEPTION    -- 执行异常部分: 错误处理  END;


 


1:修改一条记录并显示

DECLARE  Row_id ROWID;  info   VARCHAR2(40);BEGIN  INSERT INTO t_sp  VALUES    (92, '财务室', 1)  returning cityname,cityid  INTO row_id, info;  DBMS_OUTPUT.PUT_LINE(row_id);  DBMS_OUTPUT.PUT_LINE(info);END;

解释:

RETURNING子句用于检索INSERT语句中所影响的数据行数,当INSERT语句使用VALUES 子句插入数据时,RETURNING 字句还可将列表达式、ROWID和REF值返回到输出变量中。在使用RETURNING 子句是应注意以下几点限制:

1.不能与DML语句和远程对象一起使用;

2.不能检索LONG 类型信息;

3.当通过视图向基表中插入数据时,只能与单基表视图一起使用。

 

2. 删除一条记录并显示

declare flg_sp varchar2(40);begindelete from t_sp s where s.cityid='1'returning cityid into flg_sp;dbms_output.put_line('删除的ID:'||flg_sp);end;

 

变量复合类型:

看例子吧:

DECLARE  TYPE record_sp IS RECORD(    f_name t_sp.cityname%TYPE,    j_id   t_sp.cityid%TYPE);  v_sp record_sp;BEGIN  select cityname, cityid INTO v_sp FROM t_sp WHERE cityid = '1';  DBMS_OUTPUT.PUT_LINE('名称:' || v_sp.f_name || '  id:' || v_sp.j_id);END;


记录类型 ;t_sp 是表 cityid是t_sp里面字段;select  into是给变量赋值

还有使用%TYPE类型 %rowtype类型。

 


 

原创粉丝点击