自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

nsj820的专栏

Oracle、Linux/UNIX、ETL is here!

  • 博客(111)
  • 资源 (3)
  • 收藏
  • 关注

原创 关博随想

话说天下大势,分久必合,合久必分;我的博客也一样,经历了数次变动。09年开始技术方面的内容都记录在了百度博客(http://hi.baidu.com/nsj820)上;10年5月前后,将博客分别转移到CSDN(http://blog.csdn.net/nsj820)和SINA(h

2011-09-13 20:41:01 1631

原创 sqlldr理论深入学习

SQL*Loader是oracle的高速批量数据加载工具。这是一个非常有用的工具,可用于从多种平面文件格式向Oracle数据库中加载数据。SQLLDR可以在极短的时间内加载数量庞大的数据。它有两种操作模式:传统路径(conventional path):SQLLDR 会利用S

2011-09-03 06:57:19 11061

原创 SqlLoad常用技巧总结

1、控制文件中注释用“--”2、为防止导入出现中文乱码,在控制文件中加入字符集控制LOAD DATACHARACTERSET ZHS16GBK 3、让某一列成为行号,用RECNUM关键字load data infile * into table

2011-09-01 19:46:58 21788 3

原创 分析函数应用一例(查找状态全为1的ID)

1、 表结构和测试数据插入 建表:-- Create tablecreate table TAB_FXHS( id VARCHAR2(32), zt VARCHAR2(2));-- Add comments to the table com

2011-08-23 19:21:19 1891

原创 oracle体系结构

2011-08-14 09:27:04 940

原创 Oracle 执行计划中一些参数的含义

card是指计划中这一步所处理的行数;cost指cbo中这一步所耗费的资源,这个值是相对值;bytes指cbo中这一步所处理所有记录的字节数,是估算出来的一组值。·Cost:The cost assigned to each step of the query plan by

2011-08-13 07:52:49 2955

原创 in 和 exists性能研究

in 和exists从sql编程角度来说,in直观,exists不直观多一个select;in可以用于各种子查询,而exists好像只适宜于关联子查询。in 是把外表和内表作hash join,而exists是对外表作loop,每次loop再对内表进行查询。一直以来认为exist

2011-07-14 18:58:53 4479

原创 perl的EXCEL操作初级学习总结

1、使用EXECL驱动(生成脚本到固定文件)######################################################################use Win32::OLE qw(in with);use Win32

2011-07-05 20:14:42 1303

原创 oracle sql语言模糊查询

在Where子句中,可以对datetime、char、varchar字段类型的列用Like子句配合通配符选取那些“很像...”的数据记录,以下是可使用的通配符:%   零或者多个字符_   单一任何字符(下划线)/   特殊字符[]   在某一范围内的字符,如[0-9]或者[aeth][^]   不在某范围内的字符,如[^0-9]或者[^aeth] 其中关于条件,SQL提供

2011-06-29 21:22:00 1073

原创 ORACLE字符集概念学习

1、字符集的一些基本知识    字符集有很多种,最初的字符集是ASCII,由于ASCII支持的字符很有限,因此随后又出现了很多的编码方案,这些编码方案大部分都是包括了ASCII 的。EBCDIC编码是另一个比较基本的编码,它的部分字符采用了和ASCII不同的编码值,因此两者是不兼容的基本编码方案。采用EBCDIC编码的比较少,目前主要是IBM 的系统采用,如AS400及S390系统,大部分的系

2011-06-28 23:25:00 1910

原创 ORACLE启动模式及关闭

一>、ORACLE数据库启动模式1、启动SQL*PLUS不与数据库连接   SQLPLUS /NOLOG2、以SYSDBA角色与Oracle连接   CONNECT username/password AS SYSDBA3、启动实例   1>、启动一个实例,装配和打开一个数据库       STARTUP;或       STARTUP PFILE=d:/or

2011-06-28 20:08:00 4859

原创 oracle数据库字符集的修改(改Oracle字符集到utf-8为例)

1、改客户端字符集:通过WINDOWS的运行菜单运行Regedit,修改注册表Start -> Run -> Rededit Under registry Editor - > HKEY_LOCAL_MACHINE -> SOFTWARE ->ORACLE->KEY_XE->RIGHT WINDOW DOUBLE CLICK NLS_LANG -> CHANGE VALUE TO "AME

2011-06-27 20:59:00 84304 3

原创 DataStage7.5x2在win7下安装问题记录及解决

1、DS服务器端在WIN7上安装不上,在进行到33%的时候报: 问题原因:当前用户下不能注册license信息,需要进入到Administratior用户下进行安装。解决步骤:右键点击我的电脑,选择管理,在用户账户中选择administrator,在属性中将禁用此用户的选项的勾去掉,然后确定退出,再以Administrator进入OS安装DS,就可以了。注:DS的server端和c

2011-06-26 20:13:00 3607

原创 ORA-14452错误及解決方法

在删除临时表时,有时可能会遇到如下错误:ORA-14452, "attempt to create, alter or drop an index on temporary table already in use"。Metalink解决方法是先清空此临时表,然后再执行删除操作。但是,如果对此临时表未提交的事务与我们清空临时表的操作不是同一SESSION,则临时表依然删除不掉。我们可以

2011-06-25 08:30:00 1900

原创 收缩表空间

<br />1、如果要降低某个表的高水位,需:<br />1)、开启行移动开关<br />alter table table_name enable row movement;<br />2)、收缩表占用空间<br />alter table table_name shrink space;或:alter table table_name shrink space compact;或:alter table table_name shrink space cascade;<br />2、

2011-05-08 22:31:00 1010

原创 AIX环境下SHELL脚本设置成crontab调度和手动运行的某些不同

<br />有些时候,写好的shell脚本手工运行很正常,但一旦把其配置在crontab上调度就会出现这样或那样的问题。本人就遇到到如下几种情况。<br />1、在调用oracle的sqlplus、sqlldr等命令工具时必须写出其全路径才能在crontab中执行成功,否则,虽然手动运行很正常,但一配到crontab上就出现异常。<br />2、手动运行shell脚本时,可以用sh命令;但在cron中一定不能用sh执行命令,而要用直接的列出shell脚本文件的方式顺序执行。<br />3、在crontab调

2011-04-29 12:08:00 4500

原创 Orace及SqlServer的多表关联更新

一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新;而表的更新操作中,在很多情况下需要在表达式中引用要更新的表以外的数据。一、MS SQL Server 多表关联更新sql server提供了update的from 子句,可以将要更新的表与其它的数据源连接起来。虽然只能对一个表进行更新,但是通过将要更新的表与其它的数据源连接起来,就可以在update的表达式中引用要更新的表以外的其它数据。一般形式:update A SET 字段1=B表字段表达式, 字段2=B表字段表达式   from B

2011-04-24 08:10:00 2193

原创 ORACLE中UNION、UNION ALL、MINUS、INTERSECT学习

<br />1、UNION和UNION ALL的使用与区别<br />如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。union的作用是将多个结果合并在一起显示出来。<br />union和union all的区别是union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。<br />2、三大结果集处理方式概述<br />Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则

2011-04-23 15:10:00 1812

原创 仓库集市层数据测试环境某一日重跑方案

<br />在进行数据仓库项目维护的过程中,有时候下游系统会要求仓库重新提供集市层某一日数据的情况。为了简便、可行,经常采用将ODS源表从生产环境上导到测试环境中,然后在仓库的测试环境中,跑出下游系统所需要的某一日的集市层数据。<br />对于这一方案,我们在各个环境有如下几点需要注意:<br />从生产环境的源取ODS数据根据数据加载情况的不同,会有如下要求:<br />1、ODS增量供数的源数据:导出生产环境日期小于等于需要供数日期的全部增量数据(导到测试环境后,需要根据源表主键构造全量);<br />

2011-04-22 23:07:00 1832

原创 通过VBA宏合并Excel工作表

<br />工作中经常会用到的把几个Excel文件合并到一个,或者是把一个Excel文件里的所有Sheet合并到一个Sheet来进行统计。下面分别提供用vba宏来解决这两个问题的方法。<br />1、合并Excel文件<br />打开一个空Excel文件,Alt+F11,插入一个模块,开始写代码:<br /> Sub MergeWorkbooks() Dim FileSet Dim i As Integer On Error GoTo 0 Applicati

2011-04-16 10:37:00 38039 5

原创 EDW项目中ODS源接口表清单维护方案

<br />1、ODS的接口表信息保存在一个EXCEL表中<br />该表格有如下特性:<br />1)、所有的接口清单都在一个工作簿中;<br />2)、每一个sheet中存放来自一类源业务系统表的接口信息;<br />3)、不同阶段的接口表,只要是来自同一个源业务系统,都放在同一张sheet中,有[阶段]字段加以区分;<br />4)、每个sheet中也都会有一个[业务系统]字段,但对于同一个sheet,其应是同一值;<br />5)、对于一个sheet,可以添加一些衍生字段,如[edw期望加载方式]、

2011-04-15 23:56:00 2540 1

原创 sqlplus编辑命令用法

<br />l--列sql<br />n --切换活动行(n代表行数字)<br />a--活动行后增加(append)<br />i--活动行后插入新行增加(imput)<br />c--替换(change)<br />del n--删除行n<br />/--执行sql<br />说明:<br />1、a后面要空至少两个格,否则可能会出现连在一起的现象;<br />2、c替换的时候可以用如下格式 c /a/b/ ;<br />3、/表示执行sql,但r与run也一样,同样是执行sql;<br />4、sql

2011-04-13 22:17:00 1580

原创 ORACLE中判断表是否存在再删除表避免报错与MySql和SqlServer的不同

不同数据库中drop a table if it exists的不同:In MySQL it is pretty easy to drop a table if it exists already. In Oracle and Microsoft’s SQL Server it is a little more complicated. Today I want to present you the solutions for these two DBMS’.MySQL:DROP TABLE IF EXIS

2011-04-08 07:19:00 28106

原创 Oracle分页技术

<br />1、使用两层嵌套<br /> SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM edw_t100_bal_all) A WHERE ROWNUM <= 40) WHERE RN >= 21;<br />2、使用between..and..<br /> SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM edw_t1

2011-04-04 11:04:00 952

原创 oracle分析函数学习

0、建表及插入测试数据 --CREATE TEST TABLE AND INSERT TEST DATA.create table students(id number(15,0),area varchar2(10),stu_type varchar2(2),score number(20,2));insert into students values(1, '111', 'g', 80 );insert into students values(1, '111', 'j',

2011-04-03 14:21:00 1104

原创 ORACLE层次查询学习

层次查询的概念<br />语法格式:<br />select [level], column, expr... from table<br />[where condition]<br />start with condition<br />connect by [prior column1= column2 |<br />column1 = prior column2];<br />层次查询是通过start with和connect by子句标识的:<br />1.其中level关键字是可选的,表示等级,

2011-04-02 21:07:00 17310 2

原创 DW系统WIN下上线方案

<br />1、D盘根目录下新建WIN_ONLINE文件夹(程序全部在此目录下)<br />2、批调度程序<br />WIN_ONLIINE.bat<br /> D:cd D:/WIN_ONLINEsqlplus edw/edw@orcl @./ALL_CTL.CTLexit<br />3、总控脚本<br />ALL_CTL.CTL<br /> spool ./online.log@./create_table.spl;@./insert_data.spl;spool off;e

2011-03-21 22:54:00 1718

原创 利用数据字典表dba_dependencies算出EDW中的依赖关系

关于对数据仓库依赖关系的整理,经历了三个阶段:09年仓库1期的时候,仓库跑批依赖关系的整理是靠手工完成的,工作烦琐,要细心、耐心才能做好;10年做仓库2期的时候,考虑依赖关系是否能自动化完成,结果根据all_source数据字典表通过相应的限制及筛选条件用SQL语句找出了其依赖关系;接着就是现在,因为使用TOAD时无意中发现ORACLE中是应该会有一个体现依赖关系的数据字典表,结果就有了今天这样的一个方案。1、查找出需要排在前面跑批的存储过程 select distinct replace(referenc

2011-03-15 21:48:00 2547

原创 行列转换两例的思考

1、多行转成一列(1)、建测试表及插入测试数据 create table t(i int,a varchar2(1));insert into t(i,a)select 1,'a' from dualunion allselect 1,'b' from dualunion allselect 1,'d' from dualunion allselect 1,'e' from dualunion allselect 2,'z' from dualunion all

2011-03-13 11:50:00 883

原创 oracle插入多表(insert all/first)

1、建测试表 CREATE TABLE EDW_INT( AGMT_NO VARCHAR2(40 BYTE) NOT NULL, AGMT_SUB_NO VARCHAR2(4 BYTE) NOT NULL, NEED_REPAY_INT NUMBER(22,2), CURR_PERIOD NUMBER(4) NOT NULL);CREATE TABL

2011-03-10 19:34:00 7902

原创 Oracle的Number型

NUMBER数据类型NUMBER ( precision, scale)a)  precision表示数字中的有效位;如果没有指定precision的话,Oracle将使用38作为精度。b)  如果scale大于零,表示数字精确到小数点右边的位数;scale默认设置为0;如果scale小于零,Oracle将把该数字取舍到小数点左边的指定位数。c)  Precision的取值范围为【1---38】;Scale的取值范围为【-84---127】。d)  NUMBER整数部分允许的长度为(precision- s

2011-03-06 09:18:00 7753 1

原创 oracle日期时间型timestamp相关学习

1、字符型转成timestamp select to_timestamp('01-10月-08 07.46.41.000000000 上午','dd-MON-yy hh:mi:ss.ff AM') from dual;2、timestamp转成date型 select cast(to_timestamp('01-10月-08 07.46.41.000000000 上午','dd-MON-yy hh:mi:ss.ff AM') as date) timestamp_to_date from dua

2011-03-03 15:48:00 5310

原创 一个利用oracle异常处理的函数

<br />函数主体如下:<br /> CREATE OR REPLACE FUNCTION fn_get_agmt_bal(p_agmt_no varchar2)RETURN NUMBER IS v_bal NUMBER := 0; --在SQL/PLUS中执行时,若合dbms_output生效,需先执行【SET SERVEROUTPUT ON】;BEGIN select agmt_bal into v_bal from edw_t01_agmt_bal_h

2011-02-18 07:07:00 1236

原创 oracle的异常处理

<br />oracle提供了预定义例外、非预定义例外和自定义例外三种类型。其中<br />l  预定义例外用于处理常见的oracle错误;<br />l  非预定义例外用于处理预定义所不能处理的oracle错误;<br />l  自定义例外处理与oracle错误无关的其他情况。<br />Oracle代码编写过程中,如果捕捉例外则会在plsql块内解决运行错误,否则将错误传递到调用环境。常用预定义例外:<br />为了处理各种常见的oracle错误,plsql为开发人员提供了二十多个预定义例外,每个预定义

2011-02-17 23:31:00 2214

原创 Oracle分区索引

<br />表可以按range、hash、list分区,表分区后,其上的索引和普通表上的索引有所不同,oracle对于分区表上的索引分为2类,即局部索引和全局索引,下面分别对这2种索引的特点和局限性做个总结。局部索引local index<br />1.        局部索引一定是分区索引,分区键等同于表的分区键,分区数等同于表的分区数,一句话,局部索引的分区机制和表的分区机制一样。<br />2.        如果局部索引的索引列以分区键开头,则称为前缀局部索引。<br />3.        如果局

2011-01-26 19:02:00 10954 1

原创 Oracle管理方面的3个近期汇总整理

<br />1、语句修改oracle用户密码<br /> alter user edw1010 identified by edw1010;<br />其实这很简单,但因为不经常用,所以用到的时候会显得有些手忙脚乱的。<br />2、查看已经删除的代码脚本<br />参考语句如下:<br /> --可用于查看闪回查询的对象(PROCEDURE、PACKAGE、PACKAGE BODY、TYPE BODY、TRIGGER、FUNCTION、TYPE)--实际上就是在数据字典表上ORACLE的闪回查询的利用

2011-01-23 08:42:00 1042

原创 Oracel通用函数

<br />1、NVL函数<br />NVL函数的格式如下:NVL(expr1,expr2)<br />含义是:【取第一个不为空的参数】=>如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值;如果两参数都为空,则显示空。<br />例:<br />select nvl('1','2') from dual;<br />2、NVL2函数<br />NVL2函数的格式如下:NVL2(expr1,expr2, expr3)<br />含义是:【与NVL有很大的

2011-01-15 16:06:00 1148

原创 Oracle中表级列的默认值控制

<br />1、脚本及测试步骤<br /> --1、建测试表create table tab_default(id varchar2(2),default_sysdate date,default_char_date varchar2(8),default_guid varchar2(100));--2、添加默认值束缚alter table tab_default modify default_sysdate date default sysdate;alter table tab_defa

2011-01-11 18:41:00 2371

原创 PowerDesigner中将Name的部分值填到Code

<br />在PowerDesigner使用中,有时候可能会用到name中包含一部分中文注释一部分code,中间用一符号分隔,我们想让name中的code自动填写到Code中,采用如下方式。<br />具体操作方法是:<br />1.     打开:PowerDesigner菜单的Tools->Model Options....->Naming Convention<br />2.     选中Name,并勾选Enable name/code conversions.<br />3.     选择Name

2011-01-05 13:49:00 1540

原创 历史拉链表的应用--余额历史中每日平均余额的算法

<br />在数据仓库中,协议余额历史等会以拉链表的形式存储数据,以节省空间;但对拉链表的应用,如计算每日平均余额要比每日全量表麻烦一些。本文针对余额历史表中每日平均余额的算法作一个深入的学习。<br />1、  建表及插入拉链表测试数据<br /> --1、历史拉链表建表-- Create tablecreate table EDW_T100_BAL_H( ID VARCHAR2(8) not null, START_DATE DATE not null, BAL

2011-01-01 20:42:00 7382 1

通过SQL链接oracle数据库.txt

通过SQL链接oracle数据库.txt

2008-05-15

SQL安装说明

SQL安装说明,SQL Server 2000安装.rm.

2008-05-15

Oracle性能优化.chm

Oracle性能优化.chm

2008-04-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除