
4001_数据库
一步一个脚印
很普通的我.
展开
-
Oracle EXPDP/IMPDP导入时版本问题验证
1、由Oracle11G使用EXPDP加最低版本导出数据文件,由Oracle10G导入导出语句:EXPDP USER_A/USER_A@NSDEV DIRECTORY=EXPDP_FILE DUMPFILE=USER_A_10G.DMP LOGFILE=USER_A_10G.LOG SCHEMALS=USER_A VERSION=10 导入语句:IMPDP USER_A/USE原创 2011-10-21 16:41:13 · 7040 阅读 · 0 评论 -
Oracle IMPDP/EXPDP使用小结
数据泵主要解决的问题比IMP/EXP更加灵活,支持多种元数据过滤策略,多种导入/导出模式,如将A库B用户导到C库中D用户,则只需要REMAP_SCHEMA即可空表问题,Oracle11G新的表并且表中无数据也未使用过则表的SEGMENT空间是不会分配的,这样在EXP时表是导不出来的,这个问题的解决就是给表分配SEGMENT或使用EXPDP了SELECT 'ALTER TABLE '原创 2011-12-10 21:36:57 · 5342 阅读 · 0 评论 -
基于数据库字典或目录视图对数据库对象结构进行比较
基础知识1、Oracle Dictionary Views2、SQLServer目录视图关于Oracle与SQL Server的不同或相同就不整理了,试着用两者完成相同的功能的同时自然就知道两者那些是一致的哪些地方是各自的。当然,要真是非常的了解Oracle与SQL深层次的不同,那么再回过头来看类似查询这样那样数据的工作就显得简单多了。依据需求分析得出Oracle这块需要对表、视图原创 2011-10-18 09:09:13 · 1093 阅读 · 0 评论 -
ORACLE正则解决初使化数据格式不一致
在初使化用户基础数据时会出现一些数据格式不正确的情况。。 如: 2000-1-1==> 2000-01-01、2000-01-1==>2000-01-01、2000-1-01==>2000-01-01 以前会写一个function/procedure之类的脚本,大量的IF ELSE。。。 发现oracle10g已经支持正则功能。。 UPDATE LZ__EQ_RHGL LZRH SET L原创 2009-04-14 11:02:00 · 965 阅读 · 0 评论 -
Oracle修改有规则的序列
需求/介绍这是一个简单的依据使用序列的表的行数修改序列的值使其不会在业务发生时首先冲突,通常在对表进行批量操作后需要此功能。约束序列名称是有规则的,其中包含有使用此序列的表名称。序列的值不会影响与业务逻辑的关联关系。实现机制 代码package org.ybygjy.example;import java.sql.Connection;imp原创 2012-05-31 19:33:21 · 1556 阅读 · 0 评论 -
Oracle DB_LINK小结
DBLINK简述A database link is a schema object in one database that enables you to access objects on another database. The other database need原创 2011-09-17 13:42:35 · 2453 阅读 · 0 评论 -
JDBC CLOB\BLOB操作
这几天遇到个数据迁移大字段的问题一直没有时间解决,今天终于有时间解决这个问题。场景SQL Server数据库某张表的数据迁移到Oracle数据库,早期未考虑特殊字段类型的问题,但真正业务应用测试时发现了问题,对应Oracle中该字段内容为空(迁移时忽略了)。需要我们依据主键将SQL Server表中的内容更新到Oracle上来,直接利用JDBC就可以处理此问题。JDBC处理的一些总结原创 2012-08-30 20:13:49 · 7577 阅读 · 1 评论 -
数据迁移之Kettle的使用小结
场景有五个数据库,其中两个SQL Server还有三个是Oracle10G。目标将两个SQL Server中的业务数据分别依照特定的逻辑迁移到三个Oracle数据库中。Kettle的使用(基础)Kettle的安装和配置关于Kettle的安装可以直接到官网上去下载。对于Kettle的配置需要有一个数据库,Kettle的数据库负责存储Kettle自身需要的元数据描述、任务、原创 2012-04-19 18:59:32 · 12297 阅读 · 1 评论 -
Java备份Oracle数据库
Java备份Oracle数据库 Java线程、Process、ProcessBuilder2010 年 6 月 20 日文章内容描述了使用Java执行外部Oracle导出命令备份数据库功能的示例,依据此例子进行修改制造一些bug,然后将会对Java外部命令这块会有一个更加清晰的认知(个人观点仅供参考,不许拍砖,哈)小细节 ·试着把innerTh.start()这段原创 2010-06-20 20:51:00 · 8086 阅读 · 1 评论 -
Oracle自治事务
自治事务总结和分析在现场投遇到的问题,问题核心是对Oracle事务提交机制理解不透彻,忽略了Oracle自治事务。 定义自治事务由父事务或主事务启动,自治事务独立于其父事务进行操作。自治事务中使用了回滚或提交,由于某种原因发生错误都不会影响其它事务。自治事务必须显示执行COMMIT或ROLLBACK。使用场景记录应用程序事件/动作,无需考虑动作的结果原创 2012-09-21 23:49:55 · 1338 阅读 · 0 评论 -
Oracle数据库链接的创建和简单测试
Oracle DBLINK原创 2010-09-13 14:40:00 · 1521 阅读 · 0 评论 -
SQL行转列、列转行
SQL行转列、列转行这个主题还是比较常见的,行转列主要适用于对数据作聚合统计,如统计某类目的商品在某个时间区间的销售情况。列转行问题同样也很常见。一、整理测试数据create table wyc_test( id int(32) not null auto_increment, name varchar(80) default null, date date default nu原创 2014-11-27 22:54:02 · 13812 阅读 · 0 评论 -
Java调用Oracle存储过程
场景在Oracle里写个存储过程,它的参数有三类IN、OUT、IN OUT,然后在Hibernate的Session上下文中调用存储过程。方法直接JDBC的方式调用存储过程,使用Session#doWork(Work work)。示例创建示例存储过程过程很简单,有几个小点需要注意:一个异常:ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小一原创 2012-02-22 17:42:27 · 1887 阅读 · 0 评论 -
数据库对象更新维护示例
场景测试系统升级改造会动现有库中的一些对象和关系,在对原有对象处理时需要定义一些规则降低不必要的风险。尽力保证不要有删除操作、不要发生覆盖或丢失的情况。示例DECLARE BERSQL VARCHAR2(100) := 'ALTER TABLE NSBRANCH RENAME TO NSBRANCH_BACK'; /*创建建视图前转储当前表*/ DBLINK VAR原创 2012-02-23 19:38:58 · 1323 阅读 · 0 评论 -
子查询SQL
--1、如果明细合计等于明细已对账合计则主单状态为已对账--2、如果明细合计等于明细未对账合计则主单状态为未对账--3、其它情况为对账中UPDATE E_F_THIRDPTSTMT A SET A.TPS_STATE = (SELECT (CASE WHEN (CC.B - CC.C) = 0 THEN原创 2013-06-07 20:01:45 · 1182 阅读 · 0 评论 -
关于DB_LINK的相关的一个程序异常
场景1、三个数据库用户NSTCSA1482、NSTCSA1481、NSTCSA1483,两个用户使用的是DB_LINK建立联系。2、NSTCSA1481用户理解成业务子系统用到的其中一个用户,在此用户下有一些存储过程通过DBLINK使用到NSTCSA1482用户下的对象(如:表、函数、过程)。3、NSTCSA1482用户同样也有对象使用NSTCSA1481上的内容。4、这样系统正常原创 2012-03-09 17:17:19 · 1075 阅读 · 0 评论 -
Oracle触发器的使用
将触发器应用在插入表时相应字段唯一值 --建递增序列 CREATE SEQUENCE LZEAM_SP_LOOP_EQ_SEQ MINVALUE 1 INCREMENT BY 1 START WITH 1 测试:SELECT LZEAM_SP_LOOP_EQ_SEQ.NEXTVAL FROM DUAL --建触发器 CREATE OR REPLACE TRIGGER LZEAM.L原创 2009-04-03 10:14:00 · 1023 阅读 · 0 评论 -
使用JDBC查询表的主键
最近在做重构数据库表管理工作,今天遇到一个关于[给定表名称]取它的主键并进行其它关联操作. public String[] getTablePK(String tableCodes) throws Exception { String[] resultArray = null; Connection conn = null; DatabaseMeta原创 2008-06-17 22:37:00 · 3141 阅读 · 0 评论 -
ORA_01747:User.table.column 或列说明无效
ORA_01747:User.table.column或列说明无效此问题的原因是因为表的列名称使用了Oracle声明的关键字,解决方案:1、首先我们要确认哪些字符串是Oracle的关键字,具体可通过Oracle提供的V$RESERVED_WORDS2、对历史遗留系统的处理考虑修改表的列名,风险较大修改特定查询语句3、验证通过验证得出结论:在查询列中使用双引号原创 2012-04-24 14:07:19 · 44428 阅读 · 0 评论 -
使用Oracle的动态SQL支持
Oracle动态SQLDBMS_SQL的内置包Native Dynamic SQLNative Dynamic SQL的三种常用功能执行不包含绑定变量的动态DDL或DML执行包含绑定变量的动态DDL或DMLDQL支持,Data Query Language场景/简单流程代码DECLARE TMPSTR VARCHAR2(4000) := NULL;原创 2012-02-27 13:41:24 · 1042 阅读 · 0 评论 -
关于Oracle文档相关资源
关于Oracle相关资源 作为应用层的开发人员,与Oracle中的SQL相关的文档一定不会太陌生,我们会经常去找一此某个函数怎么用、建表、建库时会有哪些参数等等,去哪里找呢,总不能每次都去BaiDu! 其实Oracle提供了非常多的文档,用于DBA的、用于开发的、还有提供的工具介绍的等等,反正就是非常非常多,并且结构也非常清晰,我们要做的就是找到相关资料,然后解决问题。 有时我们原创 2011-12-03 13:58:08 · 969 阅读 · 0 评论 -
Oracle数据库LONG类型移植
LONG类型字段很原始使用时限制也很多,与LONG类型相对应的类型有CLOB,LONG类型虽然已经不建议使用但还是可以发现在Oracle数据字典相关的视图中还是有LONG类型的身影。LONG类型的移植可以直接通过DDL方式显示的修改成LONG类型:可以通过TO_LOB原创 2020-12-26 13:38:38 · 2343 阅读 · 0 评论 -
使用JDBC批量修改Oracle序列步长
使用JDBC批量修改Oracle序列步长场景数据迁移完成后需要对库中序列进行重置,。方法三种常见方式删除--重建这种方式下简单的序列重建会影响业务逻辑处理无法适应原有序列参数规则不一致的情况,但如果序列参数一致的情况下此种办法比较简单还有效率。临时修改序列步长,而后还原(PL/SQL采用此种方式)这种方式通过先修改序列步长然后通过NEXTVAL自增序列得到目标值,最原创 2012-05-17 16:12:15 · 3847 阅读 · 0 评论 -
总结近来设计设计开发的结构较验工具
总结近来设计设计开发的结构较验工具结构是根基感悟到清晰的结构才是王道,当定义出模型之后我们的工程才是工程,这些模型的概念涉及到问题解决,对问题的认识,定义了问题或是说理清了问题。下一步就是围绕着认识到的问题建立问题解决流程。第一步先把大问题分解。第二步解决小问题。第三步整合重构验证对问题的理解是根本问题,或就是设计出来的这个工具/功能是如何提供服务的,这是对外的,对内的原创 2012-04-29 18:26:15 · 1294 阅读 · 0 评论 -
JDBC建立与SQL Server的连接
JDBC建立与SQL Server的连接关键词子协议、服务器地址、端口号、实例、端口号与实例、连接属性容易出问题的地方端口号与实例同时使用,这里优先使用端口号而忽略实例配置指定了不确定的端口号总结使用JDBC连接SQL Server时端口号显得不是特别重要了需要特别注意指定特定实例时是不可以再指定端口号了http://msdn.microsoft.c原创 2012-04-23 19:40:16 · 1307 阅读 · 0 评论 -
MySQL#数字转字符、MySQL字符串拼接
MySQL#数字转字符、MySQL字符串拼接原创 2014-11-27 22:13:41 · 14184 阅读 · 0 评论