
DataBase
文章平均质量分 54
童年的天空
管理?产品?技术?运营?项目?不求面面精通,但求左右逢源。
展开
-
BI: Kettle获取命令行参数和Java调用Kettle传递参数
本示例旨在实现数据抽取,支持抽取指定ID的数据和全部数据功能,其中指定的ID通过Java传递。如下为Java调用本地的转换文件,其中String[] params就是参数,示例传递了两个参数:“123”, “234”,传递的参数全部是字符串类型,使用时需要转换成具体的格式: /** * 调用本地的转换文件(带参数) * * @Description: * @param tra原创 2012-08-16 10:39:58 · 19544 阅读 · 1 评论 -
ibatis解决sql注入问题
对于ibaits参数引用可以使用#和$两种写法,其中#写法会采用预编译方式,将转义交给了数据库,不会出现注入问题;如果采用$写法,则相当于拼接字符串,会出现注入问题。例如,如果属性值为“' or '1'='1 ”,采用#写法没有问题,采用$写法就会有问题。对于like语句,难免要使用$写法, 1. 对于Oracle可以通过'%'||'#param#'||'%'避免; 2. 对于My原创 2012-05-28 23:11:11 · 16092 阅读 · 0 评论 -
SQL Server 2005的OutPut子句用法
在sqlserver中我们一般用output标志变量为输出参数,常用在存储过程返回某个值。最近在写T-sql语句的时候同事向我介绍了output子句的用法。假设现在有这样一张表t_users现在有这样一个需求,从表中取出一条记录插入到其他的表中之后并且删除记该录。通常的做法是:(1)先取出user_no为1的用户数据插入到另外一张表(t_转载 2012-05-28 22:30:52 · 1432 阅读 · 0 评论 -
使用PL/SQL Developer的Event Monitor代替Output做调试。
转自:http://blog.youkuaiyun.com/zlowly/article/details/534143 PL/SQL Developer里的Event Monitor不知道是什么版本开始加上去的,一直以来都忽视了这个东东,不知道他是干什么的,最近研究DBMS_PIPE才发觉原来它可以在存储过程等调试过程中实时获取调试信息。使用方法很简单,自己创建一个存储过程PROCEDURE转载 2012-05-03 15:51:35 · 2232 阅读 · 0 评论 -
DBMS_PIPE管道通信
转自:http://blog.youkuaiyun.com/ziwen00/article/details/6415189 /**问题:在编译过程的时候发现有"DBMS_PIPE"标识符必须声明的错误PLS-00201*//**分析:通过角色获得的权限无效所以通过grant dba to xaxnb而得到的xaxnb用户的权限是dba的权限,在PLSQL中是没有这个权限的需要通转载 2012-05-03 15:54:21 · 3708 阅读 · 0 评论 -
ibatis缓存介绍
转自:http://www.cnblogs.com/yongze103/archive/2011/07/25/2116593.html 一、缓存介绍1.1、引入 什么影响Internet访问速率? 访问网站的过程是通过建立在TCP/IP协议之上的HTTP协议来完成的。从客户端发出一个HTTP请求开始,用户所经历的等待时间主要决定于DNS和网站的响应时间。网站域名转载 2012-02-26 13:56:15 · 1254 阅读 · 0 评论 -
用导航猫(Navicat)简单的操作你的数据库
用导航猫(Navicat)简单的操作你的数据库原创 2011-04-17 20:43:00 · 7201 阅读 · 0 评论 -
查询是否包含字段重复的数据
重复数据 数据库原创 2010-10-18 18:45:00 · 1015 阅读 · 0 评论 -
Oracle: 作业的建立与查看
oracle 作业 job scheduler原创 2010-09-21 12:34:00 · 4428 阅读 · 0 评论 -
Oracle Listener 服务不能启动的另一发现
最近时间,更换了项目组,最近突然发现Oracle Listener不能启动。以前发现不能启动的原因是,重装了Oracle后没有删除以前的注册表,以至于默认启动服务的命令文件指向的依然是以前的位置,所以不能启动,但这台电脑的Oracle只装了一次。 昨天突然发现,在listener.ora文件中的Host配置的仍然是以前的计算机名称,由于更换项目组后,没有启动过本地的Oracle,原创 2010-03-14 21:42:00 · 2152 阅读 · 0 评论 -
Oracle查询本月星期5的所有日期列表
SELECT * FROM (SELECT TRUNC(SYSDATE, 'mm') + ROWNUM - 1 DAYS FROM (SELECT LEVEL FROM DUAL CONNECT BY LEVEL TRUNC(LAST_DAY原创 2012-06-19 18:39:03 · 1114 阅读 · 0 评论 -
oracle使用select语句复制表
1.INSERT INTO SELECT语句 语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1 要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。示例如下: INSERT I原创 2012-07-05 21:02:19 · 1745 阅读 · 1 评论 -
Kettle 4.2 使用文件资源库
Kettle 4.2的操作和3.2版本有些变化,界面稍有不同。1. 建立文件资源库:点击工具->资源库->连接资源库菜单如图所示,使用文件资源库不需要用户名和密码,如果没有资源库可以点击右上角的"+"新建资源库,如下图:第一种方式为建立数据库的资源库,本例选择使用文件资源库,选择确定后会要求选择文件资源库的路径,并给文件资源库设置一个ID和名称2.原创 2012-09-23 13:33:10 · 65228 阅读 · 3 评论 -
ORACLE RAC环境下读取序列乱序问题
在数据库部署了RAC环境之后,偶尔会出现从Oracle Sequence所取出来的数是混乱的,比如第二次比第一次所取的数要小。这样当程序的逻辑依赖于ID的大小来排序时,就会产生系统混乱。其实问题是出在数据库是个RAC环境,序列是被共享的,序列默认是有缓存的。假设RAC上的两个节点上序列缓存设为20,第一个节点上缓存1-20,第二个节点缓存了21-40,当从不同节点来进行对sequenc原创 2013-02-21 12:59:58 · 11255 阅读 · 0 评论 -
ORACLE 11G默认密码期限ORA-28001: the password has expired解决方法
Oracle提示错误消息ORA-28001: the password has expired,是由于Oracle11G的新特性所致, Oracle11G创建用户时缺省密码过期限制是180天(即6个月), 如果超过180天用户密码未做修改则该用户无法登录。 Oracle公司是为了数据库的安全性默认在11G中引入了这个默认功能,但是这个默认的功能很容易被DBA或者是开发人员给疏忽,一旦密码180天未原创 2013-08-08 10:26:37 · 7861 阅读 · 0 评论 -
通过JMS监听Oracle AQ,在数据库变化时触发执行Java程序
Oracle高级消息队列AQ本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用原创 2015-10-25 21:31:49 · 15901 阅读 · 8 评论 -
Teiid 基于数据联邦的集成方案
虚拟数据库(Virtual Database–VDB) 是将一个或多个物理数据源组合起来以提供更简单的数据集成解决方案,它提供了包含组件的容器,这些组件用来集成不同数据源的数据,并通过一致的 API 来访问它们。这些物理数据源包括:JDBC 数据源、CSV 文本文件、数据表,甚至可以是 Web services。这种技术被称为是“数据联邦” -Data federation。数据联转载 2014-04-25 13:10:29 · 7390 阅读 · 1 评论 -
更有效地跟踪Bug——记录带有详细参数值的SQL
更有效地跟踪Bug——记录带有详细参数值的SQL更有效地跟踪Bug——记录带有详细参数值的SQL李顺利目录更有效地跟踪Bug——记录带有详细参数值的SQL. 1引子... 2log4jdbc. 3主页... 3配置样例... 3效果... 4使用评价... 5jdbcdslog. 6主页... 6配置样例... 6效果... 9使转载 2014-01-01 11:25:19 · 2339 阅读 · 0 评论 -
ORACLE纵向表转换为横向表写法
假设存在如下纵向表,第一列为id(可能是某个业务数据的id),第二列为类型,第三列为类型对应的值,如下图:如上表,存在2,3,4三种类型,其中业务数据ID为1的三种类型都有值,业务数据ID为2的三种类型都有值,业务数据ID为3的只有类型2和3有值,现在要把纵向表横过来显示,可以采用如下代码: -- ============================================原创 2013-05-07 20:40:05 · 9519 阅读 · 0 评论 -
Oracle SQL语句调优(一)
从网络上查找的一些Oracle SQL优化的办法,但测试的时候并没有发现速度有多大的提升,可能当时测试的数据量不够,姑且先记录下来,作为一个编程的规范:1. 做表与表的连接查询时,大表在前,小表在后;2. 显示字段时,通过字段前缀区分不同表的字段;3. 查询条件中限制条件要卸载表连接条件前;4. 不再字段中使用函数,例如where age-2=10改为where age=10+2;原创 2012-08-19 16:31:39 · 1196 阅读 · 0 评论 -
oracle 11G 11.2.0.1.0 使用exp无法导出空表的解决办法
11G(11.2.0.1.0)中有bug,当表无数据时,不分配segment 解决方法: 1、insert一行,再rollback就产生segment了。 该方法是在在空表中插入数据,再删除,则产生segment。导出时则可导出空表。 2、设置deferred_segment_creation 参数 SQL>show param原创 2012-07-11 10:57:34 · 3309 阅读 · 0 评论 -
oracle调用java程序连sqlserver2005
1、在oracle的sys-sysdba下登陆写一个java source程序链接sqlserver2005:create or replace and compile java source named test asimport java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedState转载 2009-09-26 19:42:00 · 1915 阅读 · 0 评论 -
Oracle千万条记录插入与查询小结
最近做了个项目,实现对存在千万条记录的库表进行插入、查询操作。原以为对数据库的插入、查询是件很容易的事,可不知当数据达到百万甚至千万条级别的时候,这一切似乎变得相当困难。几经折腾,总算完成了任务。在此做些简单的小结,不足之处,还望javaeye的高手们帮忙补充补充! 1、 避免使用Hibernate框架 Hibernate用起来虽然方便,但对于海量数据的操作显得力不从心。 关于插入:转载 2009-06-28 19:35:00 · 1038 阅读 · 0 评论 -
Oracle游标使用大全
从游标提取数据 从游标得到一行数据使用FETCH命令。每一次提取数据后,游标都指向结果集的下一行。语法如下: FETCH cursor_name INTO variable[,variable,...] 对于SELECT定义的游标的每一列,FETCH变量列表都应该有一个变量与之相对应,变量的类型也要相同。 例: SET SERVERIUTPUT ON DECLA转载 2009-04-21 21:37:00 · 1429 阅读 · 0 评论 -
MS SQL(SQL Server)技巧
判断某个表中是否存在某列if exists (select * from syscolumns where id=object_id(table_name) and name=column_name)判断数据库中是否存在某个表select * from dbo.sysobjects where id = object_id(Ntablename) and OBJECTPROPERT原创 2009-04-14 12:32:00 · 1033 阅读 · 0 评论 -
oracle 存储过程的基本语法及注意事项
1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字( 参数1 IN NUMBER, 参数2 IN NUMBER) IS变量1 INTEGER :=0;变量2 DATE;BEGINEND 存储过程名字2.SELECT INTO STATEMENT 将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条 记录,否则抛出异常转载 2009-03-04 14:25:00 · 1071 阅读 · 0 评论 -
MySQL常用操作基本
MySQL常用操作基本操作,以下都是MySQL5.0下测试通过首先说明下,记住在每个命令结束时加上;(分号)1.导出整个数据库mysqldump -u 用户名 -p --default-character-set=latin1 数据库名 > 导出的文件名(数据库默认编码是latin1)mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql2.导出一个表mys原创 2009-02-14 12:02:00 · 901 阅读 · 0 评论 -
Ubuntu下MySQL安装指南
MySQL安装指南要安装 MySQL,可以在终端提示符后运行下列命令: sudo apt-get install mysql-server mysql-client一旦安装完成,MySQL 服务器应该自动启动。您可以在终端提示符后运行以下命令来检查 MySQL 服务器是否正在运行: sudo netstat -tap | grep mysql当您运行该命令时,您可以看到类似下面原创 2008-11-06 18:03:00 · 892 阅读 · 0 评论 -
MySql创建用户及授权
设置MySQL用户账号,指定哪个用户可以连接服务器,从哪里连接,连接后能做什么。 MySQL管理员应该知道如何设置MySQL用户账号,指出哪个用户可以连接服务器,从哪里连接,连接后能做什么。MySQL 3.22.11开始引入两条语句使得这项工作更容易做:GRANT语句创建MySQL用户并指定其权限,而REVOKE语句删除权限 当你对一个用户发出一条GRANT语句时,在user表中为该用原创 2008-10-14 16:21:00 · 2138 阅读 · 0 评论 -
MySQL新建用户,授权,删除用户,修改密码操作
首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的。注:本操作是在WIN命令提示符下,phpMyAdmin同样适用。 用户:phplamp 用户数据库:phplampDB1.新建用户。//登录MYSQL@>mysql -u root -p@>密码//创建用户mysql> insert into mysql原创 2008-10-14 14:00:00 · 1107 阅读 · 0 评论 -
高级 DAO 编程 (IBM developerWorks )
J2EE 开发人员使用数据访问对象(Data Access Object DAO)设计模式,以便将低级别的数据访问逻辑与高级别的业务逻辑分离。实现 DAO 模式涉及比编写数据访问代码更多的内容。在本文中,Java 开发人员 Sean C. Sullivan 讨论了 DAO 编程中三个常常被忽略的方面:事务界定、异常处理和日志记录。在过去 18 个月中,我参加了一个由有才华的软件工程师组成的小组转载 2008-10-23 19:03:00 · 1179 阅读 · 0 评论 -
在MySQL中快速复制表格
本文将着重介绍两个MySQL命令的组合,它将以原有数据表为基础,创建相同结构和数据的新数据表。 这可以帮助你在开发过程中快速的复制表格作为测试数据,而不必冒险直接操作正在运行的数据表。 示例如下: 将 production 数据库中的 mytbl 表快速复制为 mytbl_new,2个命令如下: CREATE TABLE mytbl_new LIKE production.mytb原创 2008-10-08 10:44:00 · 1105 阅读 · 0 评论 -
oracle:端口查看, isqlplus 命令行启动与关闭,DBA访问
如果通过浏览器方式访问Oracle的em,isqlplus等,需要知道各个服务的端口,此时可以查看:$ORACLE_HOME/product/10.1.0/Db_1/install目录下的portlist.ini文件或readme.txt文件修改服务端口号:$ORACLE_HOME/product/10.1.0/Db_1/oc4j/j2ee/isqlplus/config目录中的htt原创 2009-04-23 12:34:00 · 8656 阅读 · 1 评论 -
Tnsping 和TCP/IP 中的ping 的區別
<a onclick="function onclick(){tagshow(event, Oracle);}" href="javascript:;" target="_self">Oracle Net 工具(命令)tnsping,是一个OSI会话层的工具,它用来:1)验证名字解析(name resolution,当然是oracle自己的网络服务名)2)远程的listener是转载 2009-04-21 21:27:00 · 1028 阅读 · 0 评论 -
oracle触发器中使用自治事务commit or rollback
采用自治事务的方式,可以在trigger里rollback or commit; 例子如下: SQL codeCREATE OR REPLACE TRIGGER TRI_TRACE BEFORE INSERT OR DELETE OR UPDATE ON XXTABLE FOR EACH ROW DECLARE PRAGMA AUTONOMOUS_TRANSACTION; -- 声明转载 2009-08-31 12:34:00 · 6341 阅读 · 0 评论 -
ORA-00600: internal error code, arguments: [15160], [], [], [], [], [], [], []异常处理
今天在测试一个程序时发现一个Oracle错误,错误如下ORA-00600: internal error code, arguments: [15160], [], [], [], [], [], [], []在网上调查了一下,是oracle的一个bug ,原因很多,但好像都是基于cost优化的错误,设置以下参数:alter system set "_optimizer_cost_ba转载 2009-08-23 17:18:00 · 3215 阅读 · 0 评论 -
Oracle 序列命名规范
1、序列的建立:create sequence "TEST_SEQUENCE" increment by 1 start with 1 nomaxvalue nocycle nocache;说明:最后三个值是可以自行设定的2、触发器的建立:create trigger "test_trigger" beforeinsert on test_table for each row when(new.i转载 2009-06-09 19:29:00 · 5945 阅读 · 0 评论 -
在hibernate中实现oracle的主键自增策略
在很多情况下,我们使用Hibernate在已经建立好数据库的基础上。在oracle中,如果已经建立好的数据库中使用了sequence,则可以按照下面的步骤把它引入到Hibernate中: 1、在oracle 首先创建sequence create sequence seq_id minvalue 1 start with 1 incremen原创 2009-05-08 22:04:00 · 13929 阅读 · 5 评论 -
解决重装oracle后监听不能启动的问题
需要卸载现有的oracle,然后重新安装oracle。刚刚听朋友说,如果卸载oracle的时候要卸载注册表,否则不能正常安装,当时还以为不信,但今天竟然遇到了这种问题。重新安装了oracle,发现OEM无法进入,而且用SQL Devloper也无法练级,报错显示:连接适配器错误,监听起不能正常启动,检查了本地命名,发现一切正常。查看服务,手动启动OracleTNSListener发现不能启原创 2009-04-27 22:47:00 · 2988 阅读 · 0 评论 -
SQL SERVER 2005 windows身份验证模式转为sql server验证,以及连接显示TCP/IP问题解决
安装Microsoft SQL Server 2005 时选择了windows身份验证模式,从Microsoft SQL Server Management Studio 连接到服务器时,用sa用户无法登录,提示错误: Microsoft SQL Server Error 18452: Login failed ... not associated with a trusted SQL转载 2009-04-25 22:25:00 · 3007 阅读 · 0 评论