﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Java Stop Here-文章分类-Postgre</title><link>http://www.blogjava.net/faithwind/category/7372.html</link><description>Love Java ,because you are my first lady !^_^</description><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 19:21:31 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 19:21:31 GMT</pubDate><ttl>60</ttl><item><title>PostgreSQL 与 SQL Server 的数据类型映射</title><link>http://www.blogjava.net/faithwind/articles/31287.html</link><dc:creator>黑咖啡</dc:creator><author>黑咖啡</author><pubDate>Fri, 17 Feb 2006 11:08:00 GMT</pubDate><guid>http://www.blogjava.net/faithwind/articles/31287.html</guid><wfw:comment>http://www.blogjava.net/faithwind/comments/31287.html</wfw:comment><comments>http://www.blogjava.net/faithwind/articles/31287.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/faithwind/comments/commentRss/31287.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/faithwind/services/trackbacks/31287.html</trackback:ping><description><![CDATA[<DIV class=postTitle>前言</DIV>
<DIV class=postText>
<P>　　PostgreSQL 8.1 轰动发布，我也打算将原来使用 SQL Server 的一些应用迁移到 PostgreSQL 上，首先需要迁移的是表，那么这就必须要先搞清楚这两个数据库中的数据类型的映射关系。查了下 PostgreSQL 文档特制作如下对应表格，以飨各位。</P>
<HR>

<P>&nbsp;</P>
<TABLE style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New,Arial, 宋体" cellSpacing=0 borderColorDark=#ffffff cellPadding=2 align=center borderColorLight=#808080 border=1>
<TBODY>
<TR vAlign=top bgColor=#c0c0c0>
<TH width="33%">SQL Server 2000</TH>
<TH width="33%">Microsoft Jet-SQL 4.0</TH>
<TH width="33%">PostgreSQL 8.x</TH></TR>
<TR vAlign=top>
<TD style="COLOR: navy">bigint</TD>
<TD>DECIMAL</TD>
<TD>bigint</TD></TR>
<TR vAlign=top>
<TD style="COLOR: navy">binary<FONT color=#808080>(<I><FONT color=#000000>n</FONT></I>)</FONT></TD>
<TD>BINARY(<I>n</I>)</TD>
<TD>bytea(<I>n</I>)</TD></TR>
<TR vAlign=top>
<TD style="COLOR: navy">bit</TD>
<TD>BIT</TD>
<TD>boolean, bool</TD></TR>
<TR vAlign=top>
<TD style="COLOR: navy">char<FONT color=#808080>(<I><FONT color=#000000>n</FONT></I>)</FONT></TD>
<TD>CHAR(<I>n</I>)</TD>
<TD>char(<I>n</I>)</TD></TR>
<TR vAlign=top>
<TD style="COLOR: navy">datetime</TD>
<TD>DATETIME</TD>
<TD>timestamp(date, time)</TD></TR>
<TR vAlign=top>
<TD style="COLOR: navy">decimal</TD>
<TD>DECIMAL</TD>
<TD>decimal</TD></TR>
<TR vAlign=top>
<TD style="COLOR: navy">float</TD>
<TD>FLOAT</TD>
<TD>real, float4</TD></TR>
<TR vAlign=top>
<TD style="COLOR: navy">image</TD>
<TD>IMAGE</TD>
<TD>bytea</TD></TR>
<TR vAlign=top>
<TD style="COLOR: navy">int</TD>
<TD>INT</TD>
<TD>integer, int, int4</TD></TR>
<TR vAlign=top>
<TD style="COLOR: navy">money</TD>
<TD>CURRENCY</TD>
<TD>decimal</TD></TR>
<TR vAlign=top>
<TD style="COLOR: navy">nchar<FONT color=#808080>(<I><FONT color=#000000>n</FONT></I>)</FONT></TD>
<TD>NCHAR(<I>n</I>)</TD>
<TD>char(<I>n</I>)</TD></TR>
<TR vAlign=top>
<TD style="COLOR: navy">ntext</TD>
<TD>LONGTEXT</TD>
<TD>text</TD></TR>
<TR vAlign=top>
<TD style="COLOR: navy">numeric</TD>
<TD>DECIMAL</TD>
<TD>numeric</TD></TR>
<TR vAlign=top>
<TD style="COLOR: navy">nvarchar<FONT color=#808080>(<I><FONT color=#000000>n</FONT></I>)</FONT></TD>
<TD>NCHAR VARYING(<I>n</I>)</TD>
<TD>varchar(<I>n</I>)</TD></TR>
<TR vAlign=top>
<TD style="COLOR: navy">real</TD>
<TD>REAL</TD>
<TD>real</TD></TR>
<TR vAlign=top>
<TD style="COLOR: navy">smalldatetime</TD>
<TD>DATETIME</TD>
<TD>timestamp(date, time)</TD></TR>
<TR vAlign=top>
<TD style="COLOR: navy">smallint</TD>
<TD>SMALLINT</TD>
<TD>smallint, int2</TD></TR>
<TR vAlign=top>
<TD style="COLOR: navy">smallmoney</TD>
<TD>CURRENCY</TD>
<TD>decimal</TD></TR>
<TR vAlign=top>
<TD style="COLOR: navy">text</TD>
<TD>LONGTEXT</TD>
<TD>text</TD></TR>
<TR vAlign=top>
<TD style="COLOR: navy">timestamp</TD>
<TD>BINARY</TD>
<TD><FONT color=#808080><I>无</I></FONT></TD></TR>
<TR vAlign=top>
<TD style="COLOR: navy">tinyint</TD>
<TD>BYTE</TD>
<TD><FONT color=#808080><I>无</I></FONT></TD></TR>
<TR vAlign=top>
<TD style="COLOR: navy">uniqueidentifier</TD>
<TD>GUID</TD>
<TD><FONT color=#808080><I>无</I></FONT></TD></TR>
<TR vAlign=top>
<TD style="COLOR: navy">varbinary<FONT color=#808080>(<I><FONT color=#000000>n</FONT></I>)</FONT></TD>
<TD>VARBINARY(<I>n</I>)</TD>
<TD>bytea(<I>n</I>)</TD></TR>
<TR vAlign=top>
<TD style="COLOR: navy">varchar<FONT color=#808080>(<I><FONT color=#000000>n</FONT></I>)</FONT></TD>
<TD>VARCHAR(<I>n</I>)</TD>
<TD>varchar(<I>n</I>)</TD></TR></TBODY></TABLE>
<P><B>注意:</B><U>PostgreSQL 中的 <FONT color=#800000>money</FONT>（货币）数据类型现在已经废弃，用 numeric 或 decimal 以及和 to_char 函数一起使用就可以取代它。</U> </P>
<P>* SQL Server 中的 <SPAN style="COLOR: navy">datetime</SPAN>、<SPAN style="COLOR: navy">smalldatetime</SPAN> 数据类型均包含日期和时间部分，区别只在于精度不同。其对应于 PostgreSQL 中的 <SPAN style="COLOR: maroon">timestamp</SPAN> 类型（包含日期和时间）。在 PostgreSQL 中如果只需要日期部分，则可以使用 <SPAN style="COLOR: maroon">date</SPAN> 类型，而只需要时间部分则可使用 <SPAN style="COLOR: maroon">time</SPAN> 类型。 </P>
<P>* PostgreSQL 中的 <SPAN style="COLOR: maroon">bytea</SPAN>(<I>n</I>) 始终为变长的二进制字节数组，相当于 SQL Server 中的 <SPAN style="COLOR: navy">varbinary</SPAN>(<I>n</I>)，如果没有指定 <SPAN style="COLOR: maroon">bytea</SPAN> 的最大字节数则表示为不限长度的变长字节数组，相当于 SQL Server 中的 <SPAN style="COLOR: navy">image</SPAN> 数据类型。 </P>
<P>* PostgreSQL 中的字符类型没有像 SQL Server 中有对应的本地文本类型和国际化文本类型的两种文本数据类型的区别，存储在 PostgreSQL 中的文本类型的数据是否国际化还是本地化取决于数据库的文本编码设置。<BR><I>　　为了保证数据存储的国际化，建议将数据库的文本编码方式设置为 UTF-8 或者 Unicode，以确保存储的文本可被不同地区和文化下的用户查看和存储。</I> </P>
<P>* 对于 GUID 类型的数据，在 PostgreSQL 中可以使用 <SPAN style="COLOR: maroon">bytea</SPAN>(16) 来保存，可用字节数组函数来对其进行比较等操作。 </P></DIV><img src ="http://www.blogjava.net/faithwind/aggbug/31287.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/faithwind/" target="_blank">黑咖啡</a> 2006-02-17 19:08 <a href="http://www.blogjava.net/faithwind/articles/31287.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>postgresql-ds.xml</title><link>http://www.blogjava.net/faithwind/articles/30180.html</link><dc:creator>黑咖啡</dc:creator><author>黑咖啡</author><pubDate>Fri, 10 Feb 2006 08:52:00 GMT</pubDate><guid>http://www.blogjava.net/faithwind/articles/30180.html</guid><wfw:comment>http://www.blogjava.net/faithwind/comments/30180.html</wfw:comment><comments>http://www.blogjava.net/faithwind/articles/30180.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/faithwind/comments/commentRss/30180.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/faithwind/services/trackbacks/30180.html</trackback:ping><description><![CDATA[在deploy下新建一个postgresql-ds.xml的配置文件，然后在程序中可以直接这么使用了。<BR><PRE>DataSource ds  = (DataSource)ctx.lookup("java:/PostgreSql&lt;这个文件和xml文件中的名字对应&gt;");
con = ds.getConnection();<BR>
</PRE><A href="jdbc:postgresql://『主机的域名或者IP』:『数据库的端口』/『要连接的数据库名字』" target=_blank>jdbc:postgresql://『主机的域名或者IP』:『数据库的端口』/『要连接的数据库名字』<BR></A><BR>配置文件的内容如下<BR><PRE>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;datasources&gt;
  &lt;local-tx-datasource&gt;
    &lt;jndi-name&gt;PostgreSql&lt;/jndi-name&gt;
    &lt;connection-url&gt;jdbc:postgresql://localhost:5432/testdb&lt;/connection-url&gt;
    &lt;driver-class&gt;org.postgresql.Driver&lt;/driver-class&gt;
    &lt;user-name&gt;username&lt;/user-name&gt;
    &lt;password&gt;password&lt;/password&gt;
    &lt;!-- The minimum connections in a pool/sub-pool. Pools are lazily constructed on first use --&gt;
    &lt;min-pool-size&gt;5&lt;/min-pool-size&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;!-- The maximum connections in a pool/sub-pool --&gt;
    &lt;max-pool-size&gt;100&lt;/max-pool-size&gt;
  &lt;/local-tx-datasource&gt;
&lt;/datasources&gt;</PRE><img src ="http://www.blogjava.net/faithwind/aggbug/30180.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/faithwind/" target="_blank">黑咖啡</a> 2006-02-10 16:52 <a href="http://www.blogjava.net/faithwind/articles/30180.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>