??xml version="1.0" encoding="utf-8" standalone="yes"?>免费日韩一区二区三区,亚洲国产欧美一区二区三区丁香婷 ,中文字幕在线观看一区http://www.aygfsteel.com/sean/category/18649.htmlRead me, read Sean.zh-cnMon, 24 Mar 2008 01:19:53 GMTMon, 24 Mar 2008 01:19:53 GMT60[Tips] ULOracle数据库到PostgreSQL的要?/title><link>http://www.aygfsteel.com/sean/archive/2008/03/11/185510.html</link><dc:creator>大胃</dc:creator><author>大胃</author><pubDate>Tue, 11 Mar 2008 15:04:00 GMT</pubDate><guid>http://www.aygfsteel.com/sean/archive/2008/03/11/185510.html</guid><wfw:comment>http://www.aygfsteel.com/sean/comments/185510.html</wfw:comment><comments>http://www.aygfsteel.com/sean/archive/2008/03/11/185510.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/sean/comments/commentRss/185510.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/sean/services/trackbacks/185510.html</trackback:ping><description><![CDATA[ <br />最q尝试把一个Oracle数据库,q同构徏在这个数据库上的Java应用UL到PostgreSQL环境。在ULq程中,ȝ了一些要点,一斚w作ؓW记备忘Q一斚w也给有类gQ务需要处理而又无从下手的朋友作为参考?br /><br />1- 首先是准备PostgreSQL环境。有条g的话Q最好是找一台空闲的PCZ为测试服务器Q安装Linux或BSDQ然后从源码~译最新的PostgreSQL 8.3.0。编译时Q通过configure指定--with-perl?-with-python以支持PL/Perl和PL/Python。因为绝大多数Linux发行版都已自带Perl和PythonQ不必额外安装?br /><br />2- 如果是Windows环境Q又需要Perl和PythonQ则必须额外安装QPython的话Q可以方便的扑ֈ2.5 for Windows的安装包QPerl的话Q推荐ActivePerlQ相寚w烦一点,Z后面用到的一些便利的功能利加蝲QPerl版本量?.8.8?br /><br />3- 创徏数据库和用户。通过initdb初始化数据目录,配置postgresql.conf指定LIP、端口等{信息,配置pg_hba.conf指定讉K权限Q通过pg_ctl -D <数据目录> -l <日志文g> start启动postmasterQ然后createdb、createuser创徏数据库和用户。数据库建好之后Q就可以createlang -d <数据库名> [plperl|plperlu|plpython|plpythonu]开启PL/Perl和PL/Python。具体命令行参数可通过各命令加--help查看?br /><br />4- 安装PostgreSQL客户端pgAdminIIIQ最新版?.8.2Q有条g的话Q也可以下蝲源码自己~译?br /><br />5- 安装Oracle客户端,需要在PostgreSQL同一台机器,以便Perl用于q接数据库的DBI和Oracle驱动DBD::Oracle模块利安装。如果是Windows上的ActivePerlQ则可以通过ppm install DBD-OracleQ如果是Linux/BSDQ则可以通过CPAN来安装,如perl -MCPAN -e shellq入CPAN ShellQ通过install <模块?gt;或force install <模块?gt;安装DBI和DBD::Oracle?br /><br />6- 数据库的ULQ可以选择ora2pg来帮忙,目前的版本是4.7。ora2pg是一个用于读取Oracle数据库schema、数据,q生成PostgreSQL脚本或直接导入PostgreSQL数据库的Perl工具。用法很单,是通过.conf文g指定数据库连接信息包括NLS_LANG、需要导出导入的schema、table、view、data{等Q然后执行一个pl脚本。这是目前相Ҏ较成熟的一个方案,但是遇到schema复杂、约束较强的数据库,需要手工处理的地方q是不少。徏议不要直接写入PostgreSQLQ而是生成SQL脚本Q验证无误后再执行。ora2pg默认会把Oracle中名U的大写转换成小写,因ؓPostgreSQL在解析SQLӞ除非""括v来,默认都是转成写。schema、table、view、sequence、data{等Q基本用ora2pgQ加上一些手工调整即可搞定。至于function、stored procedure{,q是手工UdQ偷不得懒。除了ora2pgQ其实也可以配置DBI-LinkQ将Oracle数据库挂到PostgreSQL数据库作Zl独立的"schema"Q然后用create table xxx as select ... from ...q样的语法来倒表和数据。PostgreSQL的contrib包也附带有一个dblinkQ不q是q接其他PostgreSQL数据库的Q如果需要连接非PostgreSQLQ? q是考虑DBI-LinkQQ何可以通过Perl的DBI接口讉K的数据库Q都能linkqPostgreSQL?br /><br />7- 接下来就是Java应用本n了,我这ơ移的这个应用是Spring+iBatis架构的,很多SQL语句都是明文Q好在DAO层的基础部分(CRUD)的SQLMap是工兯动生成,且都是符合ANSI SQL92标准的,不需要修改即可用。其余的高查询SQLQ需要调整的地方不少Q一些常见的修改列D如下Q?br /><br />i. SELECT出来的columnQ包括子查询Q,如果有别名,必须加ASQ比?select null as some_column from some_table;<br />ii. PostgreSQL没有dual表,cMselect 0 from dual的语句,写成select 0卛_;<br />iii. DECODE函数需要重构成(case when some_column = 'some_value' then 'some_other_value' when ... then ... else 'some_default_value' end ) as some_column;<br />iv. NVL()函数QPostgreSQL中相对应的是coalesce()Q其实几乎所有主DBMS都支持coalesceQ包括OracleQ这才是标准写法;<br />v. 比较日期Q在PostgreSQL中,使用date_trunc('day', SOME_DATE) = date_trunc('day', #enteredDate#)q样的写法,其中'day'位置可选字D包括有year、month、week、hour、minute、second{等;<br />vi. SYSDATEQ对应到PostgreSQL是current_timestampQ可以根据需要用current_date;<br />vii. ROWNUMQ通常我们用ROWNUM都是Z限制查询出来的记录数QPostgreSQL没有q个关键字,需要改成在SELECT语句最后添?LIMIT语句Q如LIMIT 100;<br />viii. (+)q样的外q接写法需要调整ؓSQL标准?table1 [LEFT|RIGHT|FULL] OUTER JOIN table2 ON (...);<br />ix. CONNECT BY ... START WITH ... 递归查询可以参?http: //www.postgresql.org/docs/8.3/static/tablefunc.html 的connectby()函数.<br /><br />最后再多提一点,PostgreSQL自带的过E语a是PL/pgSQLQ在PostgreSQL上写functionQ除了用plpqsqlQ还支持sql、plperl(u)、plpython(u){等。如果你对SQL天生q敏Q看cMPL/pgSQL的代码都很吃力,别说是写了,你完全可以用你喜Ƣ的语言来表辑և数和存储q程的逻辑。有了PL/PythonQ你q怕什么呢Q你几乎能做M事?br /><br />[更新 20080313] 把JDBC驱动的部分漏掉了Q移植Java应用Ӟ除了改SQLQ还需要拿PostgreSQL的JDBC驱动攑ֈclasspath下面Q如WEB-INF/libQ然后修Ҏ据库q接URLQ改成jdbc:postgresql://<ip>:<port>/<dbname>卛_?br /><br />[更新 20080323] ULschema和数据时Q比ora2pg更方便的一U方式是利用EnterpriseDB的Migration ToolQ将Oracle的JDBC驱动ojdbc14.jar拯到EnterpriseDB安装路径下的jre/lib/ext下后Q启动Developer Studio卛_建立Oracleq接Q选中schema后,可以通过右键Online Migrationschema、数据、函数包{等一ơ性通通导入EnterpriseDB。如果要l箋往"U?PostgreSQLU,从EDB做backupQ然后到PostgreSQL下做restoreQ这样会丢掉函数包,因ؓ毕竟EDB在PostgreSQL基础上做了相当改造以和Oracle兼容Q不q函数包之类q是手工UL较稳妥?br /><br /><br /><img src ="http://www.aygfsteel.com/sean/aggbug/185510.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/sean/" target="_blank">大胃</a> 2008-03-11 23:04 <a href="http://www.aygfsteel.com/sean/archive/2008/03/11/185510.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[新闻] 开源数据库PostgreSQL正式发布8.3?/title><link>http://www.aygfsteel.com/sean/archive/2008/02/07/179424.html</link><dc:creator>大胃</dc:creator><author>大胃</author><pubDate>Thu, 07 Feb 2008 02:04:00 GMT</pubDate><guid>http://www.aygfsteel.com/sean/archive/2008/02/07/179424.html</guid><wfw:comment>http://www.aygfsteel.com/sean/comments/179424.html</wfw:comment><comments>http://www.aygfsteel.com/sean/archive/2008/02/07/179424.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/sean/comments/commentRss/179424.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/sean/services/trackbacks/179424.html</trackback:ping><description><![CDATA[ <br />l过1?日和1?8日两轮RC后,PostgreSQL 8.3l于在本月初正式发布了。该版本有很多功能和性能上的重大提升Q包括全文搜索、新的数据类?XML、ENUM、UUID{?、ƈ发autovacuum、异步提交等{,以及对Windowsq_更好的支持,如SSPI和VC++{?br /><br />官方声明: <a target="_blank" title="http://www.postgresql.org/about/news.918" >http://www.postgresql.org/about/news.918</a><br />Release Notes: <a target="_blank" title="http://www.postgresql.org/docs/8.3/static/release-8-3.html" >http://www.postgresql.org/docs/8.3/static/release-8-3.html</a><br />各版本功能对? <a target="_blank" title="http://www.postgresql.org/about/featurematrix" >http://www.postgresql.org/about/featurematrix</a><br />下蝲: <a target="_blank" title="http://www.postgresql.org/ftp/" >http://www.postgresql.org/ftp/</a><br /><br /><br /><img src ="http://www.aygfsteel.com/sean/aggbug/179424.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/sean/" target="_blank">大胃</a> 2008-02-07 10:04 <a href="http://www.aygfsteel.com/sean/archive/2008/02/07/179424.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle 11g今年8月登陆Linuxhttp://www.aygfsteel.com/sean/archive/2007/07/14/130252.html大胃大胃Sat, 14 Jul 2007 04:31:00 GMThttp://www.aygfsteel.com/sean/archive/2007/07/14/130252.htmlhttp://www.aygfsteel.com/sean/comments/130252.htmlhttp://www.aygfsteel.com/sean/archive/2007/07/14/130252.html#Feedback0http://www.aygfsteel.com/sean/comments/commentRss/130252.htmlhttp://www.aygfsteel.com/sean/services/trackbacks/130252.html 来自PC World的报?
http://www.pcworld.com/article/id,134381-c,databases/article.html




大胃 2007-07-14 12:31 发表评论
]]>
[Tips] 解决Linux环境下SQL*Plus方向键无法用的问题http://www.aygfsteel.com/sean/archive/2007/06/07/122736.html大胃大胃Thu, 07 Jun 2007 14:13:00 GMThttp://www.aygfsteel.com/sean/archive/2007/06/07/122736.htmlhttp://www.aygfsteel.com/sean/comments/122736.htmlhttp://www.aygfsteel.com/sean/archive/2007/06/07/122736.html#Feedback0http://www.aygfsteel.com/sean/comments/commentRss/122736.htmlhttp://www.aygfsteel.com/sean/services/trackbacks/122736.html Linux下面使用Oracle的SQL*Plus工具有个挺恼人的问题Q通过sqlplus命oq入到SQL*Plus控制台后Q我们在Bash中已l? 习以为常的上下左右键H然变成了^[[A^[[B^[[D^[[Cq样?q"。熟悉ksh的朋友肯定要说我们这是大惊小怪了Q不q对于从 Windowsq_转过来的一般用戯言Q不心按错一下就?个错误的字符Q而且历史命o也无法方便的回查了,实挺郁L?br />
别着急,如果你的Linux是Debian或者Ubuntu/KubuntuQ直接sudo apt-get install rlwrap安装q个y的readline扩展Q然后就可以以rlwrap sqlplus的方式进入方向键"正常"的SQL*Plus了。当Ӟ如果嫌每ơ敲rlwrap不爽Q可以在/etc/profile或者自q ~/.bashrc里面dalias sqlplus='rlwrap sqlplus'。其他发行版的朋友可以选择rpm包或者干脆从源码自己~译?br />


大胃 2007-06-07 22:13 发表评论
]]>
[Tips] Debian Sarge(3.1r4)下编译和安装PostgreSQL 8.2.1http://www.aygfsteel.com/sean/archive/2007/01/10/92796.html大胃大胃Tue, 09 Jan 2007 17:35:00 GMThttp://www.aygfsteel.com/sean/archive/2007/01/10/92796.htmlhttp://www.aygfsteel.com/sean/comments/92796.htmlhttp://www.aygfsteel.com/sean/archive/2007/01/10/92796.html#Feedback0http://www.aygfsteel.com/sean/comments/commentRss/92796.htmlhttp://www.aygfsteel.com/sean/services/trackbacks/92796.html [注]׃Debian相当保守的包理和更新机Ӟ本文提到的编译和安装q程可能要求你在/etc/apt/sources.list中开放testingU别的包?br/>
1- 首先是去PostgreSQL的官方网站[link]下蝲最?.2.1版本的源码,postgresql-8.2.1.tar.gz?br/> 2- 拯q解?
     $ sudo -s
     # cp postgresql-8.2.1.tar.gz /opt
     # cd /opt
     # tar zxvf postgresql-8.2.1.tar.gz
     # cd postgresql-8.2.1
3- 在开始configure和make之前Q先做一些准备工作,Z正常configure和makeQ需?
     # apt-get install build-essential gcc-4.0 libreadline5 libreadline5-dev m4 flex bison zlib1g zlib1g-dev
4- 一切就l,开?
     # ./configure --prefix=/opt/postgresql ### 更多选项参?/configure --help ###
     # make
  正常的话Q可以看到最后一行输Zؓ: "All of PostgreSQL successfully made. Ready to install."
5- 安装:
     # make install
  最后应该看到输?PostgreSQL installation complete."?br/> 6- 初始化数据库环境:
     # mkdir /opt/postgresql/data
     # adduser postgres
     # chown postgres /opt/postgresql/data
     # sudo -u postgres /opt/postgresql/bin/initdb /opt/postgresql/data/
  ~辑/opt/postgresql/data目录下的pg_hba.confQ添加local all postgres ident sameuser和local all all md5两行Q?br/>   ~辑/opt/postgresql/data目录下的postgresql.confQ去掉listen_addresses的注释符Q修改ؓlisten_addresses = '*'?br/> 7- 启动数据?
     # sudo -u postgres /opt/postgresql/bin/pg_ctl -D /opt/postgresql/data -l /opt/postgresql/data/serverlog start
     # sudo -u postgres /opt/postgresql/bin/createuser -P dbuser
     # sudo -u postgres /opt/postgresql/bin/createdb testdb
     # /opt/postgresql/bin/psql -U dbuser testdb
  若能正常q入PostgreSQL控制台ƈ执行查询如select version();卌C安装成功?br/>
每次都这样去命o行启动数据库当然有点太笨了,下次再抽I和大家分nPostgreSQL自动化启动脚本的~写?br/>



大胃 2007-01-10 01:35 发表评论
]]>
[Tips] Ubuntu下安装和配置PostgreSQL 8.1http://www.aygfsteel.com/sean/archive/2007/01/04/91845.html大胃大胃Thu, 04 Jan 2007 13:39:00 GMThttp://www.aygfsteel.com/sean/archive/2007/01/04/91845.htmlhttp://www.aygfsteel.com/sean/comments/91845.htmlhttp://www.aygfsteel.com/sean/archive/2007/01/04/91845.html#Feedback0http://www.aygfsteel.com/sean/comments/commentRss/91845.htmlhttp://www.aygfsteel.com/sean/services/trackbacks/91845.html 在Ubuntu下安装和配置PostgreSQL相对来说很简单,只是需要注意一些细节上的问题。在q里单过一遍安装步骤,其中带[*]的地斚w要特别留意?br/>
1- $ sudo apt-get install postgresql-8.1 #[*]apt-get install postgresql会安?.4版的PostgreSQL?br/> 2- $ sudo nano /etc/postgresql/8.1/main/postgresql.conf #如果不是单机使用Q需要修改CONNECTION AND AUTHENTICATIOND늚"#listen_addresses = 'localhost'"?listen_addresses = '*'"(L注释W?#"Q允许网l访问而非仅限localhost)?br/> 3- $ sudo -u postgres createuser -P #依次输入需要创建的用户名、密码、以及是否是用户、是否有权限创徏数据库、是否有权限d新的用户/角色 [*] 一定要?P选项当场创徏密码Q避免以后的q接配置问题?br/> 4- $ sudo -u postgres createdb [databasename] #创徏数据库?br/> 5- $ psql -U [username] [databasename] #正常的话已经可以q入PostgreSQL交互命o界面Qƈ且看到PostgreSQL版本P?.1.4。[*]注意大小?br/> 6- 安装自己喜欢的客LQ官Ҏ荐pgadminIIIQ安装方?$ apt-get install pgadmin3; 或者其他客LQ如Eclipse + QuantumDB (需要另外下载JDBC驱动)?br/>
大功告成Q坐下来喝杯咖啡~~




大胃 2007-01-04 21:39 发表评论
]]>
[Tips] 跨^台备?恢复DB2数据?/title><link>http://www.aygfsteel.com/sean/archive/2006/12/23/89612.html</link><dc:creator>大胃</dc:creator><author>大胃</author><pubDate>Fri, 22 Dec 2006 16:04:00 GMT</pubDate><guid>http://www.aygfsteel.com/sean/archive/2006/12/23/89612.html</guid><wfw:comment>http://www.aygfsteel.com/sean/comments/89612.html</wfw:comment><comments>http://www.aygfsteel.com/sean/archive/2006/12/23/89612.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/sean/comments/commentRss/89612.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/sean/services/trackbacks/89612.html</trackback:ping><description><![CDATA[ <br />如果你需要在不同的操作系l之间备?恢复DB2数据库,那么你很可能遇到ȝQ据说有人成功的把DB2数据库在AIX 5上backup然后在Windows下restoreQ反正我是没那么q运了,restoreq程中除了备份文件名和\径不一致的问题Q到最后一步还是报错,而Windows本地数据库backup然后restore很利?br /><br />世界末日Q还好,IBM DB2提供了db2moveq个命o行工P使用Ҏ如下Q?br />在需要备份的数据库服务器上执?br />$> db2move [数据库名U] export<br />Ҏ表的多少Q当前目录下会生成一大堆文gQ拷贝到新的pȝ下面Q新Z个同名数据库Q执?br />$> db2move [数据库名U] import<br />卛_?br /><br />直接?br />$> db2move<br />可以看到命o行选项的说明?br /><br /><br /><img src ="http://www.aygfsteel.com/sean/aggbug/89612.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/sean/" target="_blank">大胃</a> 2006-12-23 00:04 <a href="http://www.aygfsteel.com/sean/archive/2006/12/23/89612.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">ľ</a>| <a href="http://" target="_blank">ľ</a>| <a href="http://" target="_blank">ľ˹</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ǭ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">人</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">߮</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Һ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͬ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Զ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">÷ӿ</a>| <a href="http://" target="_blank">ɯ</a>| <a href="http://" target="_blank">ͭ</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">鱦</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">뽭</a>| <a href="http://" target="_blank">Զ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ݰ</a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>