zoukankan      html  css  js  c++  java
  • PL/SQL中的where子句比较

    首先以一个例子说明一下where子句中比较语句的问题。
    DECLARE Department char(3);
    begin
        Department:='CS';
    delete from classes
     where department=Department;
         如果执行以上语句将产生灾难性的后果即:classes里的数据将全部删除,而不仅仅是那些department为CS的行。之所以出现这种情况,是因为SQL语句中标识符的分析方法。当PL/SQL引擎看到一个类似下面的条件:exp1=exp2
        exp1和exp2首先要被查看是否与操作的表中的列相匹配,然后再检查它们是否是PL/SQL语句块中的变量。PL/SQL是不区分大小写的,因此在上面的例子中,department和Department与classes表中的列相符,而不是与变量相符。
        如果该语句块有一标号,就可以使用与表列相同名字的变量,这只要在变量引用前加上标号就行了。这样,就能只删除那些满足department='CS'的行。
    《1_DeleteBlock》
    DECLARE Department char(3);
    begin
        Department:='CS';
    delete from classes
     where department=1_DeleteBlock.Department;
    需要说明的是,这种方法可以产生预期的效果,但不是一种好的编程风格。



  • 相关阅读:
    Functional Programming Contest
    CodeChef--SEPT14小结
    Weekly 10 小结
    CSS中的 REM PX EM
    phoenegap3.5 采坑
    PPT插件 用js制作PPT
    js 代码命名规范系列
    文档列表
    mockjax MOCK.js的拦截ajax请求
    css Tab选项卡
  • 原文地址:https://www.cnblogs.com/abcdwxc/p/1071772.html
Copyright © 2011-2022 走看看