ora-报错解决办法整理

1.ORA-00911:无效字符

问题1.末尾有;

解决:去掉sql末尾的;号就可以了

ps:sqlplus 加;   工具不用  Java 插入数据库 也不加

2.ora-12154

以该配置连接oracle数据库,出现ORA-12514: TNS:listener does not currently know of service requested in connect descriptor错误时,查看自己的Oracle服务具体是什么

tnsnames.ora 查看服务名

OANET_153 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.212)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = shineway)
)
)

服务名 OANET_153  sid=shineway

3.ORA-01830: 日期格式图片在转换整个输入字符串之前结束

to_date函数
to_date函数用于字符串转日期,与to_char函数刚好相反。to_date形如

--oracle 为了区分分钟和月份,月份以mi表示
to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss')
to_date('2004-05-07','yyyy-mm-dd')

4.ORA-00905 缺失关键字 

检查语句 是不 有, 和() 

5.ORA-00911 无效字符

今天用PL/SQL 11(最新版)的绿色汉化破解版,发现在执行查询: select user_no 户号 from lack_charge  这个语句时在 user_no处报错,错误为 ORA-00911: invalid character (无效的字符)。经过试验所有在别名中只要用中文字符就会报这个错。后来在网上查找原因结合实际情况发现:由于是绿色版,所以有些环境变量(或是注册表中的一些值)并没有正确设置造成的,解决办法是
新建一个环境变量:
NLS_LANG,值是:AMERICAN.ZHS16GBK。

 

以下是更详细的说明:

 

这个可能是oracle客户端和服务器端的编码方式不一样。
select * from v$nls_parameters t where t.PARAMETER ='NLS_LANGUAGE' or t.PARAMETER ='NLS_CHARACTERSET';

 

--数据库服务器字符集
select * from nls_database_parameters;

 

--客户端字符集 表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表
select * from nls_instance_parameters;

 

--会话字符集的设置,这个没有特殊设置的话,和nls_instance_parameters一致
select * from nls_session_parameters;

 

--如果数据库服务器端的编码和客户端字符集编码不一样,则会导致乱码,因此需要更改客户端的编码方式。
--更改客户端的编码方式有两种方式,第一种是更改注册表,这个比较危险,就不在这里提及。第二种是设置环境变量。
--设置系统环境变量,新建一个环境变量:
NLS_LANG,值是:AMERICAN.ZHS16GBK。
--值的构成方式是数据库中查询的服务器端的“NLS_LANGUAGE的值”+“.”+“NLS_CHARACTERSET的值”
6.ora-03113 通信通道的文件结束

 

出现的主要原因是由于归档日志空间不够了。

解决办法:

 
--以sysdba方式登录
sqlplus / as sysdba

--关闭数据库实例
shutdown abort

--装载数据库
startup amount

--查询归档日志
select * from v$recovery_file_dest; 

--查询归档日志大小
show parameter db_recovery_file_dest_size 

--设置归档日志的大小(大小自己定)
alter system set db_recovery_file_dest_size=4G scope=both;

--打开数据库
alert database open;
 

 

 

posted @ 2020-07-02 13:31  胜天灬半子  阅读(773)  评论(0编辑  收藏  举报