oracle使用问题记录
- oracle监听报错ora-***
- 数据更新是错误:ORA-01843:not a valid month (无效日期,月无效)
- 导入文件时如果是已有表空间的导入,使用
- oracle 创建表时,出现ORA-00907: 缺失右括号
- ORA-00907: 缺失右括号
- ORA-19502: write error on file "xxxxx", block number xxxx
- sqlplus执行sql报错:ORA-01756: quoted string not properly terminated
- 使用sqlplus执行sql导致中文乱码问题
- ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效
oracle监听报错ora-***
本地oracle突然不可用,tns监听各种报错,解决一个又有一个新问题,没办法就把监听都删除又重新建了,还不不行于是就找到这个方法
简单的sql命令:
先登录到sqlplus:sqlplus /nolog
登录数据库:conn system/manager assysdba
然后启动数据库:startup
发现ora-00119【ora-00119 invalid specification for system parameter】
ora-00132【syntax error or unresolved network name ‘LISTENER_ORCL’】:
现在看来,完全可以理解就是00119就是oracle没有启动!
现在来个更简单的:
【解决办法】
方法①:这种方式每次电脑重启以后,都需要用sysdba的身份启动数据库;
优点:能够加深基本的sql密令的印象;缺点:麻烦;
1.找到一个文件夹:pfile;虽然每个人安装oracle的路径不一样,但是在安装的目录下一定会找到这个文件夹!
比如我的文件夹:D:\app\jamb008\admin\orcl\pfile
这个文件下有个文件:init.ora.62201993922 他其实就是pfile,用来启动oracle的文件!
2.用UE编辑器的方式打开它,找到local_listener,然后将它的值换掉(原始值叫LISTENER_ORCL),换成你tnsnames.ora中的ADDRESS_LIST:
然后回到cmd中,执行:startuppfile=‘D:\app\jamb008\admin\orcl\pfile\init.ora.62201993922’
再次用plsql登录:system manager成功了!!!
数据更新是错误:ORA-01843:not a valid month (无效日期,月无效)
执行时因中英文类型不同报错,可以修改当前会话的日期语言,关闭会话就失效。
--修改当前会话日期语言为中文
alter session set nls_language='SIMPLIFIED CHINESE';
--修改后可以成功执行
SELECT TO_DATE('21-5月-2021') FROM dual;
--修改会话日期语言为英文
ALTER SESSION SET nls_date_language='AMERICAN';
--修改后可以成功执行
SELECT TO_DATE('21-MAY-2021') FROM dual;
导入文件时如果是已有表空间的导入,使用
imp root/root file=D:\2022.dmp full=y ignore=y
用户有对应的库,不需要再加@数据库,加了之后反而报错
oracle 创建表时,出现ORA-00907: 缺失右括号
可能是 oracle版本过低
查资料显示,Oracle 12c R1中引入了 可见/不可见(INVISIBLE/VISIBLE)字段思想,导出的时候,会默认导出
再导入到 oracle 11g 的版本中的时候,会无法识别 VISIBLE 这样的字段
所以解决办法就是手动去掉 VISIBLE
ORA-00907: 缺失右括号
oracle 创建表时,出现ORA-00907: 缺失右括号
可能是 oracle版本过低
查资料显示,Oracle 12c R1中引入了 可见/不可见(INVISIBLE/VISIBLE)字段思想,导出的时候,会默认导出
再导入到 oracle 11g 的版本中的时候,会无法识别 VISIBLE 这样的字段
所以解决办法就是手动去掉 VISIBLE
ORA-19502: write error on file “xxxxx”, block number xxxx
错误原因:
从报错信息来看应该是写文件时遇到I/O错误,一般是磁盘空间不足导致。用df命令查看磁盘空间
[root@gsp ignt]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
37G 23G 13G 64% /
/dev/sda1 99M 23M 71M 25% /boot
tmpfs 2.0G 1.1G 941M 53% /dev/shm
/dev/mapper/VolGroup01-LogVol10
50G 46G 1.6G 97% /oradata
解决方法:
很明显/oradata只剩下1.6G空间了,不足以创建4G的数据文件,所以报上面错误。要解决这个问题,那么减小数据文件的大小或为增加资源。
sqlplus执行sql报错:ORA-01756: quoted string not properly terminated
现可能是由于使用TOAD导出SQL insert语句,编码集的问题导致的。
可以用Notepad++将字符集设置UTF-8无BOM格式编码
使用sqlplus执行sql导致中文乱码问题
export LANG=zh_cn.utf8 export LC_ALL=zh_cn.utf8 字符集(使用export临时修改)
ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效
解决方法如下:
SQL> select session_id from v$locked_object;
SESSION_ID
----------
142
SQL> SELECT sid, serial#, username, osuser FROM v$session where sid = 142;
SID SERIAL# USERNAME OSUSER
---------- ---------- ------------------------------ ------------------------------
142 38 SCOTT LILWEN
SQL> ALTER SYSTEM KILL SESSION '142,38';