当前位置:首页 » 编程语言 » plsql输入显示异常
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

plsql输入显示异常

发布时间: 2022-06-15 12:23:47

Ⅰ PLsql Developer 总提示错误

1.首先检查监听程序是否能正常启动,开始,运行 cmd--->lsnrctl start,检查监听是否是在正常运行,如果正常运行,会提示:TNS-01106: 使用名称LISTENER的监听程序已经启动。如果没有运行,用上面的命令启动监听程序。
2.还在命令提示行里用 tnsping 服务名 ,来检查tnsnames.ora服务配置是否正确。正确的提示例如:

已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = 192.168.0.6)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = 服务名)))
OK (50 毫秒)
3.plsql developer 连接不上,可以在不登录的情况下,打开‘工具’-‘首选项’,设置下 oracle主目录名和OCI库的路径。

Ⅱ plsql 查询出来的数据小数部分显示异常

你到pl/sql developer的preferences里面的sql windows设置里
把number fields to char打上勾试试

Ⅲ oracle PL/SQL 提示数字或值错误

几个办法
(1)plsql中的varchar2格式可以有32767个字符,难道还不够用(一般建立表时定义不了这么大最多只能到4000),一般来说应该够用了。
(2)实在不够用可以人为截断(分次发送,或者分两次写入),或者用自定义type(比如“自定义表”)的办法解决。

Ⅳ pl sql 登陆出现错误

是64位的操作系统吗 ?用下面的方法,不过最好换成oracle10的客户端。

64位环境下使用PL/SQL Developer连接Oracle:
•1. 下载32位Oracle InstantClient,并展开到某目录,例如C:\instantclient-basic-nt-11.2.0.2.0;
•2. 将系统的tnsnames.ora拷贝到该目录下;
•3. 在PLSQL Developer中设置Oracle_Home和OCI Library:
ToolsPreferencesOracleConnection:
Oracle_Home: C:\instantclient-basic-nt-11.2.0.2.0
OCI Library: C:\instantclient-basic-nt-11.2.0.2.0\oci.dll
•4. 在PLSQL Developer目录下编辑如下bat文件,替换其快捷方式,启动PLSQL Developer:
@echo off
set path=C:\instantclient-basic-nt-11.2.0.2.0
set ORACLE_HOME=C:\instantclient-basic-nt-11.2.0.2.0
set TNS_ADMIN=C:\instantclient-basic-nt-11.2.0.2.0
set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
start plsqldev.exe

Ⅳ plsql意外错误请发送文件

plsql意外错误请发送文件如下:
由于plsql程序块一旦产生异常而没有指出如何处理时,程序会自动终止。异常情况处理就是用来处理这些正常执行中未预料到的事件。
运行时错误,出现这种错误的时候需要手工处理,可以采用第三方软件的单步调试方式处理。
编译错误,在执行之前就已经报错,需要检查程序,修改程序,debug。

Ⅵ plsql中怎么返回异常的内容信息,就像java中的ex.println()一样

plsql有24个预定义的exception,你如果不确定你的程序可能出现什么样的错误的话,可以逐个添加检查,当然,你也可以制定详细的排错规则。目前来说,plsql中的exception的功能还没能够做到与程序语言中的异常处理相媲美的程度。
再说了,sql中能够出现的错误的情况也是有限的。如果细心的话,很多错误都是能够预见的。

Ⅶ oracle plsql 异常信息怎样查看

PLSQL_Oracle Exception异常分类、异常抛出、异常处理、异常传播(概念)
一、摘要
在PLSQL程序开发过程中,很重要的部分就是对程序异常的监控和处理,包括如何触发异常,何时进行处理,如何进行处理,是否将程式中的所有异常集中在一起,通过公共异常处理的procere或function,如果没有完善的程式处理机制,很难说该程式是一只健壮的程式,当程式遇到很多类型或者量很多资料时,系统若没有异常处理必然会导致程式的出错
当预判到了某些异常,需要对预判到的异常进行合适相应的处理,是否抛出异常还是忽略还是其他
当然程式没有预判到或者是一些未知的异常遇到,所以异常处理模块也要考虑这些未预见到的程式
PLSQL异常的资料网络流传很多,都有些类似,归纳的很详细了,资料被转来转去,也不太清楚原文的出处,向未知的大神致敬
本文整理下网络上的资料,并重新排版了下
异常的分类
系统自带异常
用户自定异常
异常的抛出
PLSQL引擎自动处理
Raise
Raise_Application_Error
异常的处理
用户自定异常处理
系统自带异常处理
未知异常处理
在声明阶段中异常
异常的传播异常的SQLCode 和 SQL Errm
异常在声明块中传播
异常在执行块中传播
Oracle ERP Fnd_file工具
fnd_file.output
fnd_file.log
附件
附件 - Oracle自带异常列表
附件 - Oracle Standard Error 列表
二、概述
1. 异常的分类
1.1 系统自带异常
1.1.1 概念 : 执行期间返回到PL/SQL块的ORACLE错误或由PL/SQL代码的某操作引起的错误,如除数为零或内存溢出的情况
每当PL/SQL违背了ORACLE原则或超越了系统依赖的原则就会隐式的产生内部异常。
因为每个ORACLE错误都有一个号码并且在PL/SQL中异常通过名字处理,ORACLE提供了预定义的内部异常
1.1.2 例子: 未定义异常,系统遇到预定义异常时,自动抛出,如no_data_found
1.2 用户定义异常
1.2.1 概念: 由开发者显示定义,在PL/SQL块中传递信息以控制对于应用的错误处理
如果要处理未命名的内部异常,必须使用OTHERS异常处理器或PRAGMA EXCEPTION_INIT 。
PRAGMA由编译器控制,或者是对于编译器的注释。PRAGMA在编译时处理,而不是在运行时处理。
EXCEPTION_INIT告诉编译器将异常名 与ORACLE错误码结合起来,这样可以通过名字引用任意的内部异常,并且可以通过名字为异常编写一适当的异常处理器。
1.1.2 例子: 自定义一个异常bxj_exception,并抛出
2. 异常的抛出
2.1 通过PLSQL引擎自动处理
2.1.1 概念: 当数据库或PL/SQL在运行时发生错误时,一个异常被PL/SQL运行时引擎自动抛出
2.1.2 例子: 系统自导抛出异常,并处理
2.2 通过Raise
2.2.1 概念: 异常也可以通过RAISE语句抛出RAISE exception_name;
显式抛出异常是程序员处理声明的异常的习惯用法,但RAISE不限于声明了的异常,它可以抛出任何任何异常。例如,你希望用TIMEOUT_ON_RESOURCE错误检测新的运行时异常处理器
2.2.2 例子: 通过raise语句将异常抛出
2.3 通过Raise_Application_Error
2.3.1 概念: RAISE_APPLICATION_ERROR 内建函数用于抛出一个异常并给异常赋予一个错误号以及错误信息。
自定义异常的缺省错误号是+1,缺省信息是 User_Defined_Exception。
RAISE_APPLICATION_ERROR函数能够在pl/sql程序块的执行部分和异常部分调 用,显式抛出带特殊错误号的命名异常。
Raise_application_error(error_number,message[,true,false])
错误号的范围是-20,000到-20,999。错误信息是文本字符串,最多为2048字节。TRUE和FALSE表示是添加(TRUE)进错误堆(ERROR STACK)还是覆盖(overwrite)错误堆(FALSE)
2.3.2 例子: 通过raise_application_error语句将异常抛出
3. 异常的处理
3.1 用户自定异常处理 、 系统自带异常处理、 未知异常处理
以下一个简单的例子说明了程式三种异常的捕捉和处理
3.2 在声明阶段中异常
以下一个简单的例子说明了在声明阶段的异常,一般来说package执行过程中很少遇到这种错误,因为在编译过程中就会审计
除非所引用的table的结构发生变化,导致引用失败
4. 异常的传播
4.1 如果异常发生在执行块
当一个异常错误在执行部分引发时,有下列情况:
如果当前块对该异常错误设置了处理,则执行它并成功完成该块的执行,然后控制转给包含块。
如果没有对当前块异常错误设置定义处理器,则通过在包含块中引发它来传播异常错误。然后对该包含块执行步骤
4.2 如果异常发生在声明块
如果在声明部分引起异常情况,即在声明部分出现错误,那么该错误就能影响到其它的块
5. 异常的SQLCode 和 SQL Errm
5.1 概念
由于ORACLE 的错信息最大长度是512字节,为了得到完整的错误提示信息,我们可用 SQLERRM和 SUBSTR 函数一起得到错误提示信息,方便进行错误,特别是如果WHEN OTHERS异常处理器时更为方便。
SQLCODE 返回遇到的Oracle 错误号
SQLERRM 返回遇到的Oracle错误信息
5.2 例子
产生SQLCode和SQLErrm
6. Oracle fnd_file.output 和 fnd_file.log
6.1 fnd_file.output
用于Request输出报表产生layout,一般不能在这里写log语句
6.2 fnd_file.log
用于存放程式log记录,用于写log,程式异常处理记录都可以通过这个api进行记录
7. 附件
7.1 附件 - Oracle自带异常列表
ACCESS_INTO_NULL 未定义对象
CASE_NOT_FOUND CASE 中若未包含相应的 WHEN ,并且没有设置 ELSE 时
COLLECTION_IS_NULL 集合元素未初始化
CURSER_ALREADY_OPEN 游标已经打开
DUP_VAL_ON_INDEX 唯一索引对应的列上有重复的值
INVALID_CURSOR 在不合法的游标上进行操作
INVALID_NUMBER 内嵌的 SQL 语句不能将字符转换为数字
NO_DATA_FOUND 使用 select into 未返回行,或应用索引表未初始化的元素时
TOO_MANY_ROWS 执行 select into 时,结果集超过一行
ZERO_DIVIDE 除数为 0
SUBSCRIPT_BEYOND_COUNT 元素下标超过嵌套表或 VARRAY 的最大值
SUBSCRIPT_OUTSIDE_LIMIT 使用嵌套表或 VARRAY 时,将下标指定为负数
VALUE_ERROR 赋值时,变量长度不足以容纳实际数据
LOGIN_DENIED PL/SQL 应用程序连接到 oracle 数据库时,提供了不正确的用户名或密码
NOT_LOGGED_ON PL/SQL 应用程序在没有连接 oralce 数据库的情况下访问数据
PROGRAM_ERROR PL/SQL 内部问题,可能需要重装数据字典& pl./SQL 系统包
ROWTYPE_MISMATCH 宿主游标变量与 PL/SQL 游标变量的返回类型不兼容
SELF_IS_NULL 使用对象类型时,在 null 对象上调用对象方法
STORAGE_ERROR 运行 PL/SQL 时,超出内存空间
SYS_INVALID_ID 无效的 ROWID 字符串
TIMEOUT_ON_RESOURCE Oracle 在等待资源时超时

Ⅷ plsql登录无响应

1,先将服务里面的oracleTNSlistener(监听)和oracleDBConsole停止(若oracleDBConsole处于停止运行状态,则只需重启一次监听即可),然后开启oracleDBConsole,等oracleDBConsole显示正在运行再开启监听服务。
2,如果再次打开登陆出现TNS报错,则点取消进入未登录模式,打开oracle自带的sql plus命令窗口,登入scott账号,然后退出(比如输入exit命令),再在“会话”栏里选择登入账号进行登入。若有更简单的方法还请不吝分享!

=======================2015/11/01========================

Ⅸ 第一个PLSQL代码就出现错误, 求助

在pl/sql的定义部分,如果你想给变量赋值,则应该这样写:

declare
v_name varchar2(20) := 'aaaaa';
begin
dbms_output.put_line(v_name);
end;

对于本例,另外一种解决办法是,将变量赋值语句放到执行部分,即:

declare
v_name varchar2(20);
begin
v_name := 'aaaaa';
dbms_output.put_line(v_name);
end;

Ⅹ PLSQL登陆时显示如下错误,如何解决

看网上的说法是到工具-首选项-oracle连接去配置oracle主目录名和oci库的位置。
(Tools-Preferences-Oracle-Connection去配置Oracle Home和OCI library)
配置过后登陆时仍然报错:
Could not load "……/bin/oci.dll"
OCIDLL forced to……
LoadLibrary(……oci.dll) returned 0

解决办法是:在64位的机器上安装32位的Oracle客户端。这样的话便连接成功。

依据:
从安装角度考虑,32bit的平台(操作系统和硬件系统)只支持32bitORACLE的安装;
64bit平台既支持32bitORACLE的安装也支持64位ORACLE的安装;