PL/SQL 中的SQL语句

例如:

普遍的SQL语句:

          update book set bookname='sssss' where bookId=1;   

 

在PL/SQL 中执行: 

          declare
           v_bookId number;
        begin
           v_bookId :=1;
           update book set bookname='sssss' where bookId=v_bookId;         
        end;

 

 

 

1,select

  在PL/SQL 程序中,使用select ...into 语句查询一个记录的信息,其语法为:

  select select_list_item into variable_list | record_variable from table where condition;

 例如:根据书名或书号查找书的信息。

 

declare
          v_bookId book.bookId%type;
          v_bookname book.bookname%type;
          v_table book%rowtype;
        begin
          select * into v_table from book where bookId=1;
          Dbms_Output.put_line('v_table.bookId '|| v_table.bookId || '  v_table.bookName ' || v_table.bookName);
          select bookId,bookName into v_bookId,v_bookname from book where bookId=1;
          Dbms_Output.put_line('v_bookId  '|| v_bookId || '  v_bookname  ' || v_bookname);
        end;

 

注意:

  •  select ...into语句只能查询一个记录的信息,如果没有查询到任何数据,会产生NO_DATA_FOUND异常;如果查询到多条记录,则会产生TOO_MANY_ROW异常。
  • into 句子后的变量用于接收查询的结果,变量的个数,顺序应该与查询的目标数据相匹配,也可以是记录类型的变量。

 

 

 

2,DML 语句。

 

    PL/SQL 中DML语句对标准SQL语句中的DML语句进行了扩展,允许使用变量。

 例如:

   declare
           v_bookId book.bookid%type :=888;
           v_bookname book.bookname%type :='why';
           begin
             insert into book(bookId,bookname,bookauth,bookprice) values(v_bookId,v_bookname,'alice',123);
             update book set bookprice=bookprice+100 where bookId=v_bookId;
             delete from book where bookId=v_bookId;
           end;

 

 

3,returning

 

如果要查询当前DML语句操作的记录的信息,可以在DML语句末尾使用returning语句返回该记录的信息。

例如:

      declare
             v_bookprice  book.bookprice%type;
         begin
                update book set bookprice=bookprice+100 where bookId=1 returning bookprice into v_bookprice;
                Dbms_Output.put_line(v_bookprice);
          end;

 

 

 

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值