11-控制结构和嵌入式SQL.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 在 PL/SQL 中操纵数据 使用DML( data manipulation )命令,来操纵数据库中的数据。 DML命令 INSERT, UPDATE 和DELETE 均可在PL/SQL块中实现,而不受限制。在PL/SQL代码中使用COMMIT 或 ROLLBACK语句来释放列锁定(和表锁定)。 INSERT 语句给已有的表添加记录。 UPDATE 语句修改表中已有的记录。 DELETE 语句删除表中的记录。 至于数据定义(DDL)和数据控制(DCL)命令的处理,需要通过Oracle提供的特殊的DMBS_SQL包来进行 * 插入数据 使用 SQL 函数, 例如 USER 和 SYSDATE。 使用数据库序列生成主键值。 可以使用源自PL/SQL块的值 加入列的缺省值。 附注: 在INSERT语句中标识符与列名相同不会引起歧义,因为INSERT子句中的任一个标识符必须代表是数据库的列。 * 更新数据 在UPDATE 语句中的SET语句中可能因为同名引起歧义。赋值符左边的标识符代表数据库列,但右边的标识符却可能是数据库的列名也可能是一个PL/SQL变量。 在PL/SQL中WHERE子句也是用于决定要选择哪些行,如果没有符合条件的行被更新,不会产生错误;这一点与SELECT语句不同。 附注: PL/SQL 变量的赋值符是 := ,而SQL 列的赋值符是 =。 如果WHERE子句中的列名与标识符名相同,Oracle Server 会首先在数据库中查找该名。 * 删除数据 例: DECLARE v_ordid ord.ordid%TYPE := 605; BEGIN DELETE FROM item WHERE ordid = v_ordid; END; * 命名风格 在WHERE子句中按照命名规则命名,以区分数据库中的列和PL/SQL 变量,避免歧义。 数据库中列应与标识符有截然不同的名字。 如果WHERE子句中的列名与标识符名相同, PL/SQL会首先在数据库总查找该名,可能会出现语法错误。 * 命名规则 PL/SQL 首先在数据库中检查标识符是否为列名,如果不是,则认为它是一个PL/SQL标识符。 在SELECT语句中,同名不会引起歧义,因为任一个SELECT子句中的标识符都必须是数据库中的列名。 在INTO语句中,同名也不会引起歧义,因为任一个INTO子句中的标识符都必须是PL/SQL变量。 仅在WHERE子句中,命名可能引起歧义。 DECLARE deptno dept.deptno%TYPE :=10; ename emp.ename%TYPE; sal emp.sal%TYPE ; BEGIN SELECT ename, sal INTO ename, sal FROM emp WHERE deptno = deptno; --仅在WHERE子句中,命名可能引起歧义。 END; / DECLARE * ERROR 位于第 1 行: ORA-01422: 实际返回的行数超出请求的行数 ORA-06512: 在line 6 * 事物控制 在Oracle中,当第一条SQL开始执行时,一个新的事务就开始了。而事务的结束一般是使用COMMIT(提交)或 ROLLBACK(回滚)来标识的。当SQL语句遇到COMMIT或ROLLBACK时,当前的工作会被保存(使用COMMIT时)或取消(使用ROLLBACK时),这样一个事务也就结束了。 在事务处理过程中使用SAVEPOINT 来标记中间点。 语法 COMMIT [WORK]; ROLLBACK [WORK]; 其中: WORK 是可选的,只是为了加强语句的可读性。 附注: 虽然主环境可能对一些事务控制命令有所限制,但所有事务控制命令在PL/SQL中均可用。 也可在块中使用锁定命令(如LOCK TABLE 和 SELECT ... FOR UPDATE ),在事务执行期间,它们是有效的。 一个块并不一定对应一个事务。 * 创建逻辑条件 使用AND 逻辑表可以帮助分析布尔条件的值。 例子1: DECLARE x NUMBER :=8; y NUMBER :=5; high NUMBER; BEGIN IF x y THEN high := x; ELSE high := y; END IF; DBMS_OUTPUT.PUT_LINE(high); END; /

文档评论(0)

wxc6688 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档