Oracle 命令解锁

进来操作Oracle老是出现死锁现象,可能自己太菜鸟,也可能oracle太强鸟。经常麻烦DBA她会恨我滴-。-#
有需要的那去吧:)

 

检查那个表被锁

1
2
3
4
select sess.sid,sess.serial#, lo.oracle_username,lo.os_user_name,ao.object_name,lo.locked_mode
from v$locked_object lo,dba_objects ao,v$session sess
where ao.object_id = lo.object_id
and lo.session_id = sess.sid;

alter system kill session '285,13';  干掉……

Oracle免客户端PLSQL连接数据库

在这个破本子上安装Oracle纯属扯淡,那么使用PLSQL连接ORACLE似乎这个办法可以,但是无奈网上一些鸟人都是CCCC,所以走了10分钟弯路才走通……

首先你需要PLSQL,如果DBA给你了,那你就直接用吧。

下载Oracle Client Package

http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html下载

Instant Client Package – Basic包( 标注:All files required to run OCI, OCCI, and JDBC-OCI applications)

你要同意人家的规定,还得注册个用户…………………… 自己去搞定吧,记得看清楚版本号。

下载后解压到你想放置的地方。

例如我解压到的是D盘,我的路径是

D:\instantclient-basic-nt-11.2.0.2.0\instantclient_11_2

在这个目录下创建sqlnet.ora和tnsnames.ora两个文件

sqlnet.ora内容为

SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

tnsnames.ora内容为
orcl=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)

然后配置环境变量 这个必须的会啊

变量名: TNS_ADMIN

变量值: D:\instantclient-basic-nt-11.2.0.2.0\instantclient_11_2

 

我的PLSQL是解压版的 :)

配置PLSQL的参数 打开你的PLSQL 然后选择 Tools菜单下的 preference 参数配置

Oracle主目录名: D:\instantclient-basic-nt-11.2.0.2.0\instantclient_11_2

OCI库: D:\instantclient-basic-nt-11.2.0.2.0\instantclient_11_2\oci.dll

 

OK,搞定,有乱码是吧,那么强制转码一下

在PLSQL下创建一个bat,然后运行这个bat 搞定

 

@ECHO OFF
set nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
start PLSQLDev.exe
exit

 

收工,赶项目去了。

oracle时间格式转换问题 ORA-01810: format code appears twice

今天在做报表查询的时候Oracle报错:

信息为 ORA-01810: format code appears twice

原因:由于想java一样转化时间格式,但是Oracle中是不区分大小写的,所以格式最终为

select count(*) as k2 ,t.cityid as k1 from
portal_user t where
t.createtime >= to_date(#YbeginTime#,’yyyy-mm-dd HH24:mi:ss’)
and to_date(#YendTime#,’yyyy-mm-dd HH24:mi:ss’)>=t.createtime
group by t.cityid order by cityid

注意:因为原来的 yyyy-mm-dd HH:mm:ss 中mm 重复出现了两次,所以悲催的oracle就秀逗了。:)

Oracle 字符串连接

Oracle中,有时候我们需要用到字符串连接来拼接语句,这样可以让我们组成语句更加的便捷。

EG:||

select count(*) as k2 ,t.cityid as k1 from
portal_user t where
t.createtime >= to_date(#YbeginTime#||' 00:00:00','yyyy-mm-dd HH24:mi:ss')
and to_date(#YendTime#||' 23:59:59','yyyy-mm-dd HH24:mi:ss')>=t.createtime
group by t.cityid order by cityid