首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PLSQL --> 动态SQL的常见错误

--============================ -- PL/SQL --> 动态SQL的常见错误 --============================ 动态SQL在使用时,有很多需要注意的地方...本文介绍了动态SQL的常见问题。 一、演示动态SQL的使用 下面的示例中,首先使用动态SQL基于scott.emp创建表tb2,然后里直接使用动态SQL从新表中获取记录数并输出。...再接下来是定义了一个动 态PL/SQL代码并执行以获取当前的系统时间,最后使用动态SQL对新表进行更新。...SQL的常见错误 1.使用动态DDL时,不能使用绑定变量 下面的示例中,在创建表示,使用了绑定变量:dno,在执行的时候收到了错误信息。...ORA-06512: at line 13 处理办法 去掉动态PL/SQL 块尾部的斜杠 5.空值传递的问题 下面的示例中对表tb_emp更新,并将空值更新到sal列,直接使用USING NULL

2.2K20

pl sql developer中的CnPlugin插件,sql代码自动补全提示,批量添加单引号「建议收藏」

一.安装 使用pl sql developer的版本7以上,下载CnPlugin插件,文件解压缩后,将里面的CnPlugin.dll和CnPlugin文件夹放到你的pl sql的安装路径中的PlugIns...pl sql developer软件,会显示出你安装的CnPlugin插件 三.打开插件 汉化版:在菜单栏工具–>配置插件 里面配置 CnPlugin 英文版:在菜单栏 Tools –> Configure...Plug-Ins里面配置 CnPlugin 四.设置 点击上图红框进入,来到下图页面,在①处设置快捷键,在②处显示快捷键对应的完整代码,在③处为触发快捷键的方式(可以设置为Tab键或者空格键)。...例如:在你的sql的窗口中,输入be,然后按空格键,则自动补全②处完整代码 五.批量添加单引号 汉化版:在菜单栏工具–>首选项–>键配置 在右侧找到 plugins/cnplugin/expaste...,然后随便输入你键盘的按键来设置它的快捷键,此处为ctrl+d,然后保存 六.添加 在sql窗口中,输入字符串666,777,888,999 然后选中它,按刚才设置的快捷键ctrl+d,理想情况是让它变成

4.4K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【DB笔试面试445】Oracle中的异常可以分为哪几类?

    预定义异常用于处理常见的Oracle错误,对这种异常情况的处理,无需在程序中定义,由Oracle自动将其触发。它们全部放在PL/SQL自带的标准包中,这样程序员就无需再次定义了。...试图被零除 ORA-01722 INVALID_NUMBER 转换一个数字失败 ORA-06500 STORAGE_ERROR 内存不够或内存被破坏触发的内部错误 ORA-06502 VALUE_ERROR...使用预定义异常只能处理系统预定义的20多个Oracle错误,而当使用PL/SQL开发应用程序时,可能会遇到其它的一些Oracle错误。例如,在PL/SQL块中执行DML语句时,违反了约束规定等等。...Oracle提供了2个函数SQLCODE和SQLERRM用于返回错误信息: l SQLCODE:返回错误代码 l SQLERRM:返回与错误代码关联的消息 这样就可以在错误日志表中记录程序在执行过程中发生的错误信息了...当与一个异常相关的错误出现时,就会隐含触发该异常。用户定义异常是通过显式使用RAISE语句来触发。当触发一个异常时,控制程序就转到异常块部分,执行错误处理代码。

    1.8K10

    MOS文章实验:ORA-01722 from Queries with Dependent Predicates

    Predicates (文档 ID 232243.1)》,整篇文章的目的就是为了阐述对于包含相互依赖关系谓词的SQL语句产生错误的可能原因(To explain the possible causes...文章指出可能的错误类型包括以下几种:   ORA-01722 invalid number ORA-01790: expression must have same datatype as corresponding...当使用松散类型('loose typing')字段,且包含可变谓词顺序的场景下,在类型转换发生之前如果不能删除会产生错误的列值,那么就有可能产生上述的一些类型转换错误。...会提示to_number的处理存在无效数字。...对于data列中22这个记录,包含NUMBER数字类型,因此转换是有效的,但对于其他行,这种转换就是无效的,因为不包含等价的数值,例如'Pet Foods Inc'。

    73820

    JavaEE 项目常见错误汇总

    (3)方法三 修改Tomcat配置文件server.xml中的端口号。 修改8080端口为其它端口号。 注意事项:这个错误与eclipse和操作系统位数没关系。 2....Cause: java.sql.SQLException: ORA-01722: 无效数字 原因——本质原因是入参和数据库表字段数据类型不匹配,报错可能存在以下两种情况: (1)可能一:入参数据类型不对...=4099; // 没错 oracle数据库的 sql 语句中=是用数字比较的,因此 oracle 会自动把字符串类型转换成数字进行比较。...在eclipse关闭其它项目后,仍然会出现该问题,但是控制台日志会出现和其它已关闭项目相关的错误。 原因: 不确定。 解决: 删除其它在Tomcat webapp目录下暂时不运行的项目。...java.sql.SQLException: 无效的列类型 数据类型与数据库表的不一致

    1.7K20

    PLSQL编程基础简介及实践

    在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL就是把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算程序语言。...4、使用说明 1、允许的语句:  可使用INSERT、UPDATE、DELETE、SELECT INTO、COMMIT、ROLLBACK、SAVEPOINT语句,在PL/SQL中需要以动态的方式使用DDL...可以不用知道列的数据类型、当列的数据类型改变后,修改pl/sql代码 被赋值的变量与select中的列名要一一对应。...2、异常情况(exception)指在正常执行过程中未预料的事件,程序块的异常处理预定义错误和自定义错误,运行PL/SQL块时一旦产生异常而没有指出如何处理时,就会自动终止整个PL/SQL块的运行。...: sqlcode:错误编号 如:6502 sqlerrm:错误消息 如:ORA-06502: PL/SQL: 数字或值错误 : character string buffer too small (<

    1.5K20

    Oracle数据库,浅谈PLSQL异常处理

    众所周知,程序的错误一般情况下分为两类:编译错误和运行时错误。其中运行时错误被称为异常。PL/SQL语句块中处理异常的部分即为异常处理部分。在异常处理部分,可以指定当特定异常发生时所采取的动作。...本文我们就来聊一聊PL/SQL异常处理的那些事儿。 ? PL/SQL有两种类型的异常:内置异常和用户自定义异常。其中,内置异常又分为预定义异常和非预定义异常。...当输入的员工编号存在时,输出员工姓名,当员工编号不存在时,会有运行错误。...综上所述,我们发现预定义异常的错误代码有名称,譬如上文提到的NO_DATA_FOUNG,而非预定义异常只有错误代码,没有名称,如上文提到的ora-02292。...这时可以通过EXCEPTION_INIT编译指令进行错误代码和名称的关联。当PL/SQL语句块的可执行部分出现某个运行错误时,会抛出不同类型的异常。

    76120

    【Mybatis】动态 SQL:代码与数据的灵动共舞,奏响数据库查询的华丽乐章

    ️1.动态SQL 动态 SQL 是Mybatis的强⼤特性之⼀,能够完成不同条件下不同的 sql 拼接可以参考官⽅⽂档: 网址在这里:动态 SQL_MyBatis中文网 1.1标签 我们在平时登录的时候会出现如下的情况...: :动态的在SQL语句中插⼊set关键字,并会删掉额外的逗号....>标签 在我们编写SQL的时候存在,重复的语句,就会有很多冗余的代码。...例如: 我们可以对重复的代码⽚段进⾏抽取,将其通过 sql> 标签封装到⼀个SQL⽚段,然后再通过 标签进⾏引⽤。...,取名叫做allcolumn,然后再使用的时候使用标签进行SQL片段的使用; ️2.总结 本期小编主要讲解了动态SQL的使用,具体包括<forearch

    13510

    故障分析 | MySQL 的隐式转换导致诡异现象的案例一则

    Oracle 执行直接报错,提示"无效数字",因为 a 是 VARCHAR2、0 是数字,因此报错是针对字段 a 的,需要将 a 转成数字,但字符是无法转成数字的,所以提示 "无效数字" 是合情合理的。...ORA-01722: 无效数字 SQL Server 执行直接报错,但是提示信息更加清晰明了,说的就是字段 a 的值 "测试a" 不能转成 INT 数值型。...小结 通过以上对比,可以知道 Oracle 和 SQL Server 对 "字符型=数值型" 的条件,会自动将字符型类型转成数值型,如果因为值的问题不能转成数值型,就会提示错误,而 SQL Server...毕竟对产品来说,避免错误可能比表面上能执行更加重要,但就这个问题上,Oracle 和 SQL Server 可以说更胜一筹的。 2.3 问题分析 MySQL 为什么在这里会给出错误的结果?...3总结 我不知道这种设计是出于什么考虑,但这种"容错性"不可取,毕竟返回了错误的结果集。 当然,这个问题也和数据类型的使用有关,SQL 条件中 "a=0" 实际上是 "varchar=int"。

    30440

    Oracle PLSQL中异常高级特性

    在OraclePL/SQL语句块中exception的异常处理部分是非常重要的组成部分,它决定了在PL/SQL语句块内部可执行部分在发生异常错误时,程序是友好地提示:程序遇到某些错误而无法执行,还是抛出一堆难以理解的...ORA-06512: at line 11  - 示例解析:该PL/SQL代码会根据用户输入的员工Id,查询员工的姓名和工资。...PL/SQL procedure successfully completed.  - 这下抛出的错误就容易理解多了。...PL/SQL procedure successfully completed. - 在本代码中使用了raise_application_error,由于单纯的使用raise_application_error...在异常处理部分,我们使用了一个PL/SQL语句块来处理这个错误,声明两个变量,并将SQLCODE和SQLERRM以字面值赋值的方法给这两个变量。

    69410

    Oracle PLSQL编程之基础

    begin         /*执行部分---要执行的pl/sql语句---要执行的pl/sql语句和sql语句*/         exception         /*例外处理部分---处理运行的错误...        end; 2、下面通过实例了解pl/sql块 2.1、一个超级简单的pl/sql块 ?...上图是一个简单的pl/sql块,输出hello world,红框内是打开系统的输出选项,绿框(dbms_output)是Oracle所提供的包(类似Java的开发包),该包包含一些过程,put_line...就是dbms_output包的一个方法 2.2、包含定义部分和执行部分的pl/sql块 ?...2.3、pl/sql的例外处理 在上面的实例代码中存在一个问题,当我们输入的编号(empno),在emp表中不存在时,那么程序就会报错,当我输入42345345时,程序就会报以下错误, ?

    88280

    Oracle优化器对谓词顺序处理的一个场景

    如下测试,在Oracle 11g执行,提示错误,认为to_number的变量存在非法的数值类型, SQL> select to_number(c2) as value, c1 from test where...from dual * ERROR at line 1: ORA-01722: invalid number 从这儿我们还可以知道一点,就是Oracle的where各条件的位置其实并不重要...说明了Oracle真正执行的语句是经过他的优化器调整的“他认为”的路径,但这个路径很可能导致语句执行错误,如上的示例中,如果先执行c1='3',再执行to_number(c2),应该就可以。...如果按照语义,改造一下,子查询中指定where c1='3',打算得到的c2都是数值的字符串类型,然后在外层where value(to_number(c2))>2,但是仍然报"ORA-01722: invalid...例如c1存储的就是“数字”,如果定义为字符串类型,varchar2还好,char就出现了上述执行错误的场景,如果“数字”就使用数值类型number存储,就会绕过这个坑,同理,像“日期”用字符串类型存储存在相同的问题

    58650
    领券