数据库
东京老树根
希望能写出让大家很喜欢的文章。
展开
-
Oracle-存储过程的两个小坑INTO 变量名 和 NVL2
今天遇到存储过程的两个坑。1,fetch into的变量名与列名相同,大大的有问题。 就是下面这对红配绿。你改成一样的试试。一定要定义一个和列名不一样的变量,加前缀v_之类的就挺好的。・代码:create or replace PROCEDURE DAILY_Update_PD_Flg AStarget_flg VARCHAR(1);v_pd_cd VARCHAR(18);CURSOR PD_CUR IS SELECT pd_cd FROM T_PD WHERE PD_...原创 2020-11-24 19:09:33 · 815 阅读 · 0 评论 -
Oracle-RDS for Oracle出现ORA-00054 对应方法
RDS for Oracle,在使用Truncate来删表中数据的时候,出现了如下的错误:ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired。主要原因是因为有事务正在执行(或者事务已经被锁),所有导致执行不成功。如果是普通的Oracle数据库的话,先查看是那个session,然哈把它kill掉就可以了。1,查看sessionSELECT X.SID , X.SE...原创 2020-11-06 15:11:55 · 207 阅读 · 0 评论 -
Oracle-ORA-12545 Connect failed because target host or object does not exist 解决
最近碰到一个古怪的问题,使用TNSNAMES适配器来连接数据库的时候,一样的net servie名,在Windows上连接成功,在Linux上连接失败,搞得挺惨的,原因就是IPv6两头有俩方括号,Windows上要,Linux上不要。在Linux上,使用EZCONNECT适配器的话,是可以连接的,使用过TNSNAMES的话,报标题ORA-12545错误,提示主机无法识别。<EZCONNECT适配器>tnsping [2001:cf6:0:6d1:3:0:a2a2:1b1b..原创 2020-10-21 11:01:46 · 3582 阅读 · 0 评论 -
Linux-BShell中调用sqlplus执行sql文件,如何传值
有些环境变量想要从shell传到sql文件里面,该如何传值呢?跟普通变量一样。<<shell--Test.sh>>BK_DIR="dmpfiles"BK_NM="Test_001.dmp"sqlplus -s S001/PASSWORD@TEST_1 @/home/s001/S001.sql ${BK_DIR} ${BK_NM} << EOFexit $?EOFEXCODE=$?if [ $EXCODE -ne 0 ]; then e...原创 2020-09-16 11:10:40 · 716 阅读 · 0 评论 -
Linux-BShell中调用sqlplus执行sql文件,如何取得返回值
有时候会想在Shell中调用一个存储过程啊等等,做法一般就是把这个存储过程给放在一个sql文件中,然后调用sqlplus来执行该sql文件。但是问题是,如果存储过程出错,该怎么返回错误代码呢?答案就是在sql文件中定义全局变量。参考代码如下:<<shell--Test.sh>>sqlplus -s S001/PASSWORD@TEST_1 @/home/s001/S001.sql << EOFexit $?EOFEXCODE=$?i..原创 2020-09-14 16:05:30 · 2464 阅读 · 0 评论 -
Oracle-exp的时候出现的EXP-00091错误如何理解?
利用Oracle数据库嘛,难免都会导入导出,笔者就碰到一个问题,使用exp的时候,出了如下错误:EXP-00091Exporting questionable statistics.EXP-00091: 不審な統計をエクスポートしています。使用的exp/imp语句如下:exp S001/Password@TestDB_01 tables=T_S001_ATTACH query=\" WHERE substr\(attach_file_lst_upd_ymd,0,8\) ='20200..原创 2020-07-13 15:28:19 · 1426 阅读 · 0 评论 -
Oracle Express版本的使用及 如何用SQLDeveloper连接XE
Oracle XE是Oracle的免费版,跟收费版相比,自然有些限制。但是,在教学,自学等场合,还是很好的。笔者在本机Windows10上装了Oracle XE 18c,然后就开始一顿折腾了。1,DBA账户这个就是在安装的时候,让你输入密码的,只输入一个密码,但是是3个账户公用。就是System,Sys,PDBAdmin。2,创建完之后使用SqlDeveloper或Sqlplus登录--SqlDeveloper--连接类型:Basic角色:Default主机名:.原创 2020-07-06 11:15:28 · 1063 阅读 · 0 评论 -
proc错误 proc: symbol lookup error: proc: undefined symbol: kgefac_
在这样一个场景下:你已有大量Pro*C代码,但是你的Oracle数据库版本要升级了,于是你的客户端也要等版本的升级。当然客户端一般都具有兼容性,所以也可以不升级,但是老板们一般不这么想嘛,万一出事,你负责啊?咋整,只能升级了呗。但是又不想把proc也升级啊,因为那样的话,你的Pro*C代码怎么办,重新编译测试一遍?come on。新数据库:Oracle 19c老数据库:Oracle 11g办法自然是很老套,客户端升级,但是proc嘛,还是用原来的嘛。皆大欢喜。又是一个温暖..原创 2020-06-05 09:08:28 · 367 阅读 · 0 评论