- 在 Oracle 数据库中,我们通常在不同数据库的表间记录进行复制或迁移时会用以下几种方法:
1. A 表的记录导出为一条条分号隔开的 insert 语句,然后执行插入到 B 表中
2. 建立数据库间的 dblink,然后用 create table B as select * from A@dblink where ...,或 insert into B select * from A@dblink where ...
3. exp A 表,再 imp 到 B 表,exp 时可加查询条件
4. 程序实现 select from A ..,然后 insert into B ...,也要分批提交
5. 再就是本篇要说到的 Sql Loader(sqlldr) 来导入数据,效果比起逐条 insert 来很明显
第 1 种方法在记录多时是个噩梦,需三五百条的分批提交,否则客户端会死掉,而且导入过程很慢。如果要不产生 REDO 来提高 insert into 的性能,就要下面那样做: Read More DBMS_JOB系统包是Oracle“任务队列”子系统的API编程接口。DBMS_JOB包对于任务队列提供了下面这些功能:提交并且执行一个任务、改变任务的执行参数以及删除或者临时挂起任务等。
DBMS_JOB包是由ORACLE_HOME目录下的rdbms/admin子目录下的DBMSJOB.SQL和PRVTJOB.PLB 这两个脚本文件创建的。这两个文件被CATPROC.SQL脚本文件调用,而CATPROC.SQL这个文件一般是在数据库创建后立即执行的。脚本为DBMS_JOB包创建了一个公共同义词,并给该包授予了公共的可执行权限,所以所有的Oracle用户均可以使用这个包。 Read More
- 做企业应用的也不时要与 LDAP 打交道的,例如组织架构、人员的管理,权限的分级控制等。以前管理 LDAP 都是用客户端工具 LDAP Browser 什么的,有时不甚方便。幸运的是,网上有一个现成的、功能完备的 LDAP Web 管理工具,那就是赫赫有名的 phpMyAdmin 的姊妹 phpLDAPadmin。
Web 方式的 phpLDAPadmin 利于发布,随处使用,基本上它有 LDAP Browser 客户端工具的所有功能,诸如条目管理、属性管理、导入导出、条件搜索等。还有比 LDAP Browser 所没有的 Schema 信息明细展示功能。
phpLDAPadmin 的界面截图请见:http://phpldapadmin.sourceforge.net/screenshots.php
您也可以进到 phpLDAPadmin 的 Demo 站点:http://thesmithfam.org/phpldapadmin-demo/htdocs/index.php 先睹为快。 Read More 前面写过一个因为 Oracle 驱动版太低引起的一在题:Oracle 驱动版本引起的显示字段奇怪编码问题。 今天又遇着一个。
本地写好的一段连接数据库的程序,一放到正式服务器上又不能正常工作了,原来的代码中没有打印出异常栈,都看不出什么问题来,后来加上异常栈输出,得到如下信息:
Fail to convert to internal representation
java.sql.SQLException: Fail to convert to internal representation
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:114)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:156)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:219)
at oracle.jdbc.driver.OracleStatement.getLongValue(OracleStatement.java:3022) Read More
开门见山把产生问题的原因的解决办法列出来。
我们一般获取 Statement 都是通过 conn.createStatement() 方法,很少传递参数给它的,所以其内置属性都取默认值的,取记录只用 while(rs.next()) 逐个取即可。然而有一个需求(Oracle 8i 之前的版本不支持子查询排序,所以无法用 rownum 取分页记录) 是通过如下代码来得到 Statement:
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
由它获得的结果集可以 rs.absolute(n) 直接跳到第 n 行记录来获得值,但就这个用法出问题了,取出来的中文出现乱码了,如 "无效",变成了 "0xE697A0E69588" Read More- 魔高一尺,道应比其高一丈┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
│ ┆ ┆ ┆乃┆,┆四┆星┆瓦┆作┆。┆以┆天┆燎┆瓮┆言┆天┆ │
│ ┆ ┆ ┆作┆吞┆夷┆文┆安┆“┆士┆万┆下┆原┆安┆封┆涯┆ │
│ ┆ ┆ ┆此┆吐┆闻┆竖┆县┆不┆民┆计┆异┆之┆案┆事┆,┆红│
│ ┆ ┆ ┆妇┆天┆而┆排┆”┆贱┆交┆,┆己┆势┆,┆者┆红┆朝│
│ ┆ ┆ ┆人┆地┆轻┆体┆。┆省┆语┆禁┆者┆,┆传┆二┆朝┆笑│
│ ┆ ┆ ┆小┆,┆之┆属┆时┆”┆作┆“┆,┆乃┆之┆十┆之┆话│
│ ┆ ┆ ┆子┆包┆,┆文┆文┆,┆书┆贵┆天┆差┆海┆万┆稷┆一│ Read MoreOracle SQL的优化规则:- 尽量少用IN操作符,基本上所有的IN操作符都可以用EXISTS代替
用IN写出来的SQL的优点是比较容易写及清晰易懂,但是用IN的SQL性能总是比较低的,从ORACLE执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别:
ORACLE 试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录,如果转换成功则直接采用多个表的连接方式查询。由此可见用 IN的SQL至少多了一个转换的过程。一般的SQL都可以转换成功,但对于含有分组统计等方面的SQL就不能转换了。 Read More
今夜,打开 TheServerSide.Com,看到 MyEclipse 又出新品 MyEclipse Blue Edition,专为 WebSphere 开发者打造的。WebSphere 用户也算是有福了,想想以前在 MyEclipse 里联用 WebSphere Server 是一件多么痛苦的事情啊,所以不得不在本地用 Tomcat 测试,一搬到正式环境难免要受到兼容性的折磨。WSAD 和 RAD 提供的功能自是不必说,但慢的难以忍受,快来体验一下 MyEclipse Blue Edition 吧。
原文翻译如下:
Genuitec 今日宣布发布一款名为 MyEclipse Blue Edition 的新产品,它针对的是 IBM Rational Application Developer (RAD) 和 WebSphere 的开发。 Read More使用ssh的朋友应该会知道这个工具,小巧,不需要安装,功能也不弱,是一个理想的ssh工具。
在使用中,需要将PuTTY放到批处理文件中调用,自动登录上服务器,然后运行命令,退出。google,百度搜索了都没有相关的中文资料,于是直接看英文文档,使用到的几个参数做一个说明,抛砖引玉。欢迎补充转载,请注明出处。
命令行格式
putty [-pw password] [-m file] user@ip_addr
-pw password 使用ssh登录的用户的密码(明文,所以安全性请自己考虑)
-m file 要在服务器上运行的命令
user@ip_addr 使用ssh登录的用户名和服务器的ip地址 Read More
