2009年4月27日星期一

听说要送笔记本了

最近公司营业额缕缕创新记录,公司决定每人发一台本本,在"来弄我"14寸本本和SONY 8寸小本之间选择一个,毫不忧郁的情况下我选择了后者,即使自己不想用,也比较容易出手,但是听说到时本本上会用公司LOGO,怕时出手会麻烦点,但是还是庆幸这么好的福利。先来一睹为快

办个居住证有这么麻烦吗?

从筹集材料到现在都3个多月了,都没法办下来,早知道就让付500元钱让代理帮忙办了。一开始主要是缺房产证,好不容易小敏找同事帮忙,搞到房产证,但现在又在离职确认函这一步fail了。当时CMO出具的离职证明早已交至新公司,但现在保税区人才服务中心又需要一份,而CMO因我已出俱为由,不再出俱第二份。而上海人才服务中心又以我没法证明我已离职为由不能办理居住证。为什么XM同样没有这样的材料公司就可以代办呢?这社会,让人痛心啊,都要关系,没关系党和政府处处设卡关。就如一个大活人非得出具死亡证明才能证明自己还活着一样。

2009年3月25日星期三

转春过敏

过敏了,嘴唇上一层小水泡,特痒,眼皮红肿,感觉也没吃什么特别的食物,大概是转季引起的吧,去华山医院配药和药膏 地氯雷他定片、百藓夏塔热片、地奈德乳膏(有刺激性,不可长时间用)、尿囊素维E乳膏(复硅霜)。不可以吃辛辣食物,多喝水。大概得一个星期才可恢复。

2009年3月10日星期二

我们目前是2220,15年(25万左右)
加了息了,本来只要2150.
和老公一起还.
我们是等额还款,听别人说前面还的大部分是利息.
之前贷款的时候银行也没让我们选,就直接给我们办等额了,那个时候自己又不懂.
现在有点后悔!
因为我们目前几年提前还贷的可能性不大,要过几年.但是之后都是本金了.
是不是提前还也没意思了?不能省利息了?
------------------------------------------------------
如果是商业贷款的话是可以调整还款方式的,等额换等本,或等本换等额都可以.
如果要提前还款的话还是等本比较好,可以省一笔.
这个经过我的精确计算,提前还款的时间越早省的越多~

2009年2月24日星期二

MK糟糕日子进行中... ...

从HP出来到MK快两个月了,工作累,事情烦,7*24小时值班,这一切都让我觉得同样是美国公司,为什么差别就这么大,HP从尚自由,事情多也只是阶段性的,大家都做得很自觉,主动地去完成手头的任务。从来都不感觉到压抑。但现在MK每时每刻都感觉自己像是在被监视着,大气不敢出。多么盼望下班,但是下周开始自己要7*24加班了,让人时时刻刻就在上班,双休也得上班。这么惨的情况下,更惨的是竟然不算调休,不算加班,这算什么呢?为公司无尝奉献?公司口号是“信念第一,家庭第二,工作第三”,但为什么执行下来去成为了工作第一,工作把其它所有的时间都挤掉了。身体也明显好累。真希望领导真的得去大公司好好学习一下什么才是真正的以人为本。

2009年1月6日星期二

翻过我的2008, 迎接新的2009 - 总结及展望

从来没有用文字来记录自己的人生,回头想想的确是一种遗憾,今后每年都要写这样总结及展望。

------------------------回忆 2008 ----------------------------------------
- 生活
生活没有改变多少,依然为生存而活都会,年底的经济大萧条带来了太多的变数。没有买成房子,没有陪同家人旅游。试问自己干了些什么?
- 工作
在上海HP工作了1年,从原来写report转成了做BI,技术能力没见多少成长,接触了些MS的工具,收获并未像当初设想的那么多。年末跳到了新的工司,希望在那里再加强一下自己的技术。
- 学习
三分钟热度的毛病没能让我学有所成。英语方面 自己的确比刚开始的时候长进不少。

以上就是我可悲的2008,希望它快些翻过。


------------------------展望 2009 ----------------------------------------
1.多一点时间陪伴家人,重视生活,锻炼身体
没什么比生活更重要,没什么比家人更重要,没什么比身体更宝贵,所以这一条要坚定的放在第一位。

2.学好英文
要郑重的将这一条写在这里,并且在这一年攻克这一主题,其实我的要求不高,也希望能够达到自己的底线要求。

3.学好技术
加强自己在BI领域的能力,多看一些业务方面的资料,而非单纯从技术上面来发展,为下一年做leader作好准备。
常写一些自己的blog

4.改习惯
郑重写下这条 - 必须改掉自己三分种热度的毛病

5.至少完整看完5本书
1本管理方面的
1本为人方面的
1本技术方面的
其它

就列举这些,愿我的明年会更好!

2008年5月16日星期五

Oracle Sequence for Auto-Increment

Developers who are used to AutoNumber columns in MS Access or Identity columns in SQL Server often complain when they have to manually populate primary key columns using sequences. This type of functionality is easily implemented in Oracle using triggers.First we create a table with a suitable primary key column and a sequence to support it:
CREATE TABLE departments ( ID NUMBER(10) NOT NULL, DESCRIPTION VARCHAR2(50) NOT NULL);
ALTER TABLE departments ADD ( CONSTRAINT dept_pk PRIMARY KEY (ID));
CREATE SEQUENCE dept_seq;

/Finally we can test it using the automatic and manual population methods:
SQL> INSERT INTO departments (description)
2 VALUES ('Development');
1 row created.
SQL> SELECT * FROM departments;
ID DESCRIPTION
---------- --------------------------------------------------
1 Development
1 row selected.
SQL> INSERT INTO departments (id, description)
2 VALUES (dept_seq.NEXTVAL, 'Accounting');
1 row created.
SQL> SELECT * FROM departments;
ID DESCRIPTION
---------- --------------------------------------------------
1 Development
2 Accounting
2 rows selected.

The trigger can be modified to give slightly different results. If the insert trigger needs to perform more functionality than this one task you may wish to do something like:
CREATE OR REPLACE TRIGGER dept_bir
BEFORE INSERT ON departments
FOR EACH ROW
BEGIN
SELECT NVL(:new.id, dept_seq.NEXTVAL)
INTO :new.id
FROM dual;

-- Do more processing here.
END;
/To overwrite any values passed in you should do the following:
CREATE OR REPLACE TRIGGER dept_bir
BEFORE INSERT ON departments
FOR EACH ROW
BEGIN
SELECT dept_seq.NEXTVAL
INTO :new.id
FROM dual;
END;
/To error if a value is passed in you should do the following:
CREATE OR REPLACE TRIGGER dept_bir
BEFORE INSERT ON departments
FOR EACH ROW
BEGIN
IF :new.id IS NOT NULL THEN
RAISE_APPLICATION_ERROR(-20000, 'ID cannot be specified');
ELSE
SELECT dept_seq.NEXTVAL
INTO :new.id
FROM dual;
END IF;
END;
/Hope this helps. Regards Tim...


--------------------------------------------------------------------------------
Below have some examples for reference.
--------------------------------------------------------------------------------
Example Number 1 ...
create sequence product_seq start with 1 increment 1
/
create or replace trigger product_insert before insert for each row begin
select productseq.nextval
into :new.product_id
from dual;
end;
/
Example Number 2 ... How to create an autoincrement field in a table with a sequence ...
SQLWKS> create table bob(a number , b varchar2(21));
Statement processed.
First create a sequence
SQLWKS> create sequence x ;
Statement processed.
Then create the trigger.
create trigger y before insert on bob
for each row
when (new.a is null)
begin
select x.nextval into :new.a from dual;
end;
/
Example Number 3 ... First create a sequence:
create sequence emp_no_seq;
By default it increments by 1 starting at 0.
Use its values when inserting data into the table:
insert into t_emp values (emp_no_seq.nexval, 'Joe Black');

2008年5月15日星期四

Caching Host Keys for Windows

This is information about a workaround for manually caching keys on windows clusters for sftp scripts. There is an application that is currently using this process to bypass that initial confirmation step that is required when caching keys.

Here is an example of what needs to be done.
The script needs to be modified to add echo y before calling pscp utility. The command line in script looks like:
echo y pscp -scp -i E:\Apps\Sftp\mysftp.ppk H:\Outbound\test.zip
SFTP_USERNAME@SFTP_SERVER_ADDRESS:/home/inbound/

2008年5月13日星期二

吃芒果易得芒果性皮炎

  这些天真贪嘴,吃了好多的芒果,结果得了芒果性皮炎,嘴唇上长了小泡泡,两天了还没有见效,今天上班前又去下面配了点药,都是口服的,一种是氯雷他定片,另一种是肤痒颗粒.但愿药到见效,快快好起来,下次不要太贪了,切记吃芒果一定要削皮,吃好后嘴唇上的芒果汁一定要用清水洗掉,不然容易得此下场.

mysql到oracle的数据迁移

当一个企业内部使用的数据库种类繁杂时,往往需要有一个工利用Oracle Migration Workbench将第三方架构对象移植到Oracle数据库。具能够轻轻松松地把这些数据库中所有的数据重审一遍,然后通过把对象和数据移植到一个Oracle数据库的方法合并这些数据库。本专题将为大家介绍这样一个工具——新一代Oracle Migration Workbench,它是Oracle SQL Developer的扩展工具,功能强大,让你能够在Oracle和第三方数据库里存取数据,并把第三方数据库移植到同一个Oracle 9iDatabase或Oracle Database 10g,可移植的数据包括架构对象、触发器和存储程序。目前能够支持的第三方数据库包括Microsoft SQL Server、Microsoft Access和MySQL
  本文首先介绍怎样配置安装环境,接着以Microsoft SQL Server数据库为例,为大家演示怎样浏览SQL Server 数据库对象和数据,并把它们移植到一个Oracle数据库。
  配置运行环境
  在进行第三方数据库对象移植之前,必须先配置好Oracle SQL Developer和Oracle Migration Workbench的运行环境,以确保能够与第三方数据库正常连接。在自1.2.0.29.98版本开始,Oracle SQL Developer中就附带有Oracle Migration Workbench。而Oracle SQL Developer则可以在Oracle的官方网站上下载,链接地址为
otn.oracle.com/products/database/sql_developer
  Oracle SQL Developer利用
Java DataBase Connectivity (JDBC)连接到数据库,因此除了安装Oracle SQL Developer,还需要为需要连接的第三方数据库安装和配置JDBC驱动程序。相关第三方数据库的下载要求和链接信息列举如下:
  ·MySQL JDBC驱动程序,5.04版,下载地址
http://dev.mysql.com/downloads/connector/j/5.0.html
  ·Microsoft SQL Server需要有JDBC驱动程序,相关链接http://jtds.sourceforge.net 1.2版的下载地址为http://sourceforge.net/project/showfiles.php?group_id=33291
  · 由于Microsoft Access使用JDBC/ODBC,所以不需要额外的驱动程序。
  装配驱动程序
  一旦下载完所需的JDBC驱动程序后,展开驱动程序二进制JAR文件,通常是下载的归档文件内部的一个独立JAR文件。
  · 对于MySQL,下载的mysql-connector-java-5.0.4.tar.gz(或.zip)压缩包里包含一个名为mysql-connector-java-5.0.4-bin.jar的二进制驱动JAR文件。
  · 对于SQL Server,jtds-1.2-dist.zip压缩包里包含一个名为jtds-1.2.jar的文件。
  确保第三方数据库启动且正常运行,并启动Oracle SQL Developer。在主菜单里选择Tools -> Preferences...,展开数据库节点,选择Third Party JDBC Drivers,点击Add Entry...。接着浏览并选择上文提到的JAR文件,点击OK。
  创建数据库连接
  在运行Oracle SQL Developer里的一个数据库之前,需要先建立一个数据库连接。为任何一个你想要浏览和作为移植源的第三方数据库和任何一个你想要流浪和作为移植目标的数据库建立分别建立一个连接。
  想要在Oracle SQL Developer建立一个数据库连接,首先点击Connections选项卡,右击Connections节点选择New Connection。想要为SQL Server建立一个连接,点击SQLServer选项卡,然后按照以下顺序完成连接工序:
  输入连接名,如SQLServer2005_mwb
  输入用户名和口令
  输入SQL Server database所在的机器的主机名
  输入端口
  接下来,点击Retrieve数据库以生成可移植SQL Server数据库表单。
  最后点击Test,确保你所创建的所有连接都是成功的,然后点击Connect保存连接,关闭对话框,连接到选择好的SQL Server数据库。
  浏览数据
  当你打开Oracle SQL Developer里的一个数据库连接的同时,也打开了一个SQL工作表供你写入基本的查询和命令。展开你建立好的SQL Server连接,导航至dbo菜单下的Tables节点。你可以选择和拖拽任何图表到SQL工作表上,而且这个操作会产生一个SELECT指令。按F9键执行这一查询。
  按F5键可以进行多重查询。同样的对于任何其他的Oracle数据库连接,你可以点击列表头对返回的数据进行分类排序。
  直接点击表就可以查看表的定义,如Connections Navigator 中的Customers。注意这时显示的选项卡与连接到Oracle database时出现的选项卡稍许不同。还要注意当Oracle SQL Developer连接到一个Oracle数据库时,右键快捷菜单提供很多Data Definition Language (DDL)命令或实用命令;第三方数据库连接时的右键菜单主要是浏览和移植命令。
建立一个信息库
  Oracle Migration Workbench利用一个Oracle数据库架构作为移植信息库,用来储存其为移植进程所收集和转换的元数据。不管你要进行多少次移植操作,建立移植信息库只需要执行一次就够了。这个信息库由37个表以及相关的主键、索引,8个视图,触发器和PL/SQL代码组成。虽然不是必须的,不过Oracle还是建议专门为这个信息库配置一个数据库架构。
  必须赋予创建和拥有这个信息库的用户多种系统权限和任务。列表1创建了一个名为migration的用户,并赋予其必要的特权。
  代码列表1:创建migration用户
  CREATE USER migration IDENTIFIED BY migration
  DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;
  GRANT CONNECT, RESOURCE, CREATE VIEW, CREATE PUBLIC SYNONYM
  TO migration WITH ADMIN OPTION;
  GRANT ALTER ANY ROLE, ALTER ANY SEQUENCE,
  ALTER ANY TABLE, ALTER TABLESPACE, ALTER ANY TRIGGER,
  COMMENT ANY TABLE, CREATE ANY SEQUENCE, CREATE ANY TABLE,
  CREATE ANY TRIGGER, CREATE ROLE, CREATE TABLESPACE,
  CREATE USER, DROP ANY SEQUENCE, DROP ANY TABLE,
  DROP ANY TRIGGER, DROP TABLESPACE, DROP USER,
  DROP ANY ROLE, GRANT ANY ROLE, INSERT ANY TABLE,
  SELECT ANY TABLE, UPDATE ANY TABLE
  TO migration;
  一旦你创建了这个用户,你就需要为这个用户建立一个新的数据库连接,例如Migration_Repos。当你输入必要的信息之后,点击Connect保存连接并关闭对话框。从主菜单中选择Migration -> Repository Management -> Create Repository。选择为新信息库建立的连接,并点击Create。这时,会出现一个Installing Repository对话框,显示安装进度。当进程结束后,关闭对话框。
  在Connections Navigator下会弹出两个额外的窗口,显示捕获和转换模式。
移植
  整个移植过程包括几个独立的步骤。当你已经连接到移植的目标数据库并创建了信息库之后,就可以按照以下的程序进行移植了:
  1、 捕获源数据库
  2、 转换捕获的数据库
  3、 为新Orecle架构对象生成DDL脚本
  4、 运行已生成的DDL脚本以创建新的用户和对象。
  5、 如果要进行快速移植(Quick Migration),就将源数据库的任何数据复制到新的数据库。Oracle SQL Developer也提供快速移植的功能。这个向导驱动的方法能够把架构和数据移植到Oracle数据库,并支持最小权限移植,即用户可以在不需要DBA权限的情况下将他们访问的源数据库对象移植到目标数据库。不需要用户插手,快速移植向导就可以自己完成整个移植过程。
  从主菜单中选择Migration -> Quick Migrate,以调用Quick Migration选项。向导会提供一个对话框,让你选择源连接(与第三方数据库的连接)和目标连接(与Oracle的连接)。向导会检测你是否有可用的信息库,如果没有,它会在移植过程中创建一个。一旦移植完成,你同样可以选择保存还是删除这个信息库。点击Verify以连接第三方数据库和Oracle数据库,并验证已经赋予Oracle数据库中的架构必要的权限。验证完毕后,点击Migrate完成快速移植。
  移植指南。使用以下的移植指南,你可以更加得心应手地掌控整个移植过程,并能够选择单个的表或架构对象进行移植。你还能够在移植过程的不同阶段随时进行更新,例如对架构进行重命名,在表被捕获后而被转换成Oracle模式前对其进行取消或重命名等操作。我们还是按部就班一个一个来:
  步骤一:捕获源数据库。右击Connections Navigator中的源数据库连接节点,选择Capture Microsoft SQL Server。会弹出一个进度对话框,显示捕获过程的进度。显示完成时,点击Close,关闭对话框。源数据库被捕获后,元数据定义就储存在移植信息库中,随时都可以进行转换。Captured Objects窗口中将显示可用的捕获数据库。展开新的节点,浏览输出结果。这时候,你可以进行任何诸如对表进行重命名等修改操作。
  步骤二:转化捕获的数据库。如果你对第一步的结果没有任何疑问了,就右击新近捕获的模型,选择Convert to Oracle Model。这时,会弹出一个数据图供你选择接受或修改。点击Apply选择默认设置。接着会弹出一个进度对话框,当显示转化过程完成时,点击Close关闭对话框。捕获模型和转换模型都映射储存在移植信息库中的元数据。
步骤三:为新Orecle架构对象生成DDL脚本。这个阶段,你可以选择为单个对象或者多个对象生成DDL脚本。如果想为所有的转换对象生成脚本,右击high-level converted model,然后点击Generate。
  步骤四:运行已生成的DDL脚本以创建新的用户和对象。当生成完毕时候,DDL脚本可以用SQL工作表打开。注意打开命令会创建一个新的数据库用户并赋予新用户权限。这表示要运行脚本必须是具有创建用户权限的用户,例如SYSTEM。在SQL工作表的右上角下拉菜单中选择你要运行脚本的用户,然后按F5键运行脚本。脚本运行完成后,在Connections Navigator中创建一个新的数据库连接,用来浏览和检查新的移植对象。
  步骤五:将源数据库的任何数据复制到新的数据库。移植过程的最后阶段就是把源数据库中的数据复制到目标数据库。从主菜单中选择Migration -> Migrate Data。在弹出的对话框中选择源数据库、目标数据库和转换模式,并点击OK。这时你就可以在Oracle数据库中以其他的架构浏览、编辑和使用新的对象和数据了。
  结论
  Oracle Migration Workbench支持从Microsoft Access、Microsoft SQL Server和MySQL到Oracle数据Oracle数据库数据移植,降低了移植过程的风险,并通过大量的自动操作减少了移植耗时。