例如:
普遍的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;