??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲AV日韩AV天堂久久,亚洲成AV人综合在线观看,亚洲区日韩精品中文字幕http://www.tkk7.com/bnlovebn/category/19919.html《周易》曰Q?lt;br> 天行健,君子以自Z?乑֍)<br> 地势坤,君子以厚徯?坤卦) zh-cnTue, 14 Jun 2011 19:06:49 GMTTue, 14 Jun 2011 19:06:49 GMT60APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending taskshttp://www.tkk7.com/bnlovebn/archive/2011/06/12/352125.html重归本垒QBingQ?/dc:creator>重归本垒QBingQ?/author>Sun, 12 Jun 2011 05:51:00 GMThttp://www.tkk7.com/bnlovebn/archive/2011/06/12/352125.htmlhttp://www.tkk7.com/bnlovebn/comments/352125.htmlhttp://www.tkk7.com/bnlovebn/archive/2011/06/12/352125.html#Feedback0http://www.tkk7.com/bnlovebn/comments/commentRss/352125.htmlhttp://www.tkk7.com/bnlovebn/services/trackbacks/352125.html最qorcale数据只有一台可以服务,Dhibernate q接数据库每?3分钟׃(x)?#8220;APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks”的错?
原因?hibernate 使用c3p0q接orcale数据后不?x)释?Q?c3p0的最大连接数?00Q但昄c3p0有BugQ导致数据库q接池不够用Q导致进E锁歅R?br />后换Proxool后,观察正常?br />
下面转引其它|友文章说明c3p0 ?Proxool?dbcp  的区?
1<!-- JDBC驱动E序 -->   
2<property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/struts?useUnicode=true&characterEncoding=GBK</property> <!-- 数据库用户名 -->   
3<property name="connection.username">root</property> <!-- 数据库密?nbsp;-->

上面的一D配|,?span class="hilite2" style="background-color: #ffffff">c3p0?span class="hilite1" style="background-color: #ffffff">dbcp中,都是必需的,因ؓ(f)hibernate?x)根据上q的配置来生成connectionsQ再交给c3p0?span class="hilite1" style="background-color: #ffffff">dbcp理.

1 C3P0

只需在hibernate.cfg.xml中加?
1<property name="c3p0.min_size">5</property>   
2<property name="c3p0.max_size">30</property>   
3<property name="c3p0.time_out">1800</property>   
4<property name="c3p0.max_statement">50</property>   
5

q有在classespath中加?span class="hilite2" style="background-color: #ffffff">c3p0-0.8.4.5.jar


2 dbcp

在hibernate.cfg.xml中加?
 1<property name="dbcp.maxActive">100</property>   
 2<property name="dbcp.whenExhaustedAction">1</property>   
 3<property name="dbcp.maxWait">60000</property>   
 4<property name="dbcp.maxIdle">10</property>   
 5   
 6<property name="dbcp.ps.maxActive">100</property>   
 7<property name="dbcp.ps.whenExhaustedAction">1</property>   
 8<property name="dbcp.ps.maxWait">60000</property>   
 9<property name="dbcp.ps.maxIdle">10</property>  
10

q有在classespath中加入commons-pool-1.2.jar 和commons-dbcp-1.2.1.jar.

3 proxool

׃数据库connection在较长时间没有访问下?x)自动断开q接Q导致浏览出错,增加proxool作ؓ(f)数据库pool。它有自动连接功能?br />1)、从http://proxool.sourceforge...下蝲proxoolQ释放proxool.jar到WEB-INF/lib

2)、在hibernate.cfg.xml中增加:(x)
1<property name="hibernate.proxool.pool_alias">dbpool</property>   
2<property name="hibernate.proxool.xml">proxool.xml</property>   
3<property name="connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>  
4

3)、在与hibernate.cfg.xml同目录Qsrc根目录下Q增加proxool.xml文gQ?br />
 1<?xml version="1.0" encoding="utf-8"?>   
 2<!-- the proxool configuration can be embedded within your own application's.    
 3 Anything outside the "proxool" tag is ignored. -->   
 4<something-else-entirely>   
 5 <proxool>   
 6   <alias>dbpool</alias>   
 7   <!--proxool只能理p׃生的q接-->   
 8   <driver-url>   
 9     jdbc:mysql://127.0.0.1:3306/wlsh?characterEncoding=GBK&useUnicode=true&autoReconnect=true     </driver-url>   
10   <driver-class>com.mysql.jdbc.Driver</driver-class>   
11   <driver-properties>   
12       <property name="user" value="root" />   
13       <property name="password" value="123456" />   
14   </driver-properties>   
15   <!-- proxool自动侦察各个q接状态的旉间隔(毫秒),侦察到空闲的q接马上回?时的销?/span>-->   
16   <house-keeping-sleep-time>90000</house-keeping-sleep-time>   
17   <!-- 最保持的I闲q接?/span>-->   
18   <prototype-count>5</prototype-count>   
19   <!-- 允许最大连接数,过了这个连接,再有hӞ排在队列中{候,最大的{待h数由maximum-new-connections军_-->   
20   <maximum-connection-count>100</maximum-connection-count>   
21   <!-- 最连接数-->   
22   <minimum-connection-count>10</minimum-connection-count>   
23 </proxool>   
24</something-else-entirely>  
25

于在hibernate3.0中,已经不再支持dbcp了,hibernate的作者在hibernate.org中,明确指出在实践中发现dbcp?BUG,在某些种情会(x)产生很多I接不能释放,所以抛弃了对dbcp的支持。至于c3p0Q有评论说它的算法不是最优的Q因为网上查资料得知Q有|友做了一个实验,在同一目中分别用了几个常用的q接池,然后试其性能Q发现c3p0占用资源比较大,效率也不高。所以,Z上述原因Qproxool不少行家推荐使用Q而且暂时来说Q是负面评h(hun)是最的一个。在三星中也有项目是用proxool的。从性能和出错率来说QproxoolE微比前两种好些。C3P0Q稳定性似乎不错,在这斚wg有很好的口碑。至于性能Q应该不是最好的Q算是中规中矩的cd?
  Proxool的口似乎很好,不大见到负面的评P从官方资料上来看Q有许多有用的特性和特点Q也是许多h推荐的?br />

]]>
mysql中文问题l极解决Ҏ(gu)http://www.tkk7.com/bnlovebn/archive/2008/05/26/202978.html重归本垒QBingQ?/dc:creator>重归本垒QBingQ?/author>Mon, 26 May 2008 09:06:00 GMThttp://www.tkk7.com/bnlovebn/archive/2008/05/26/202978.htmlhttp://www.tkk7.com/bnlovebn/comments/202978.htmlhttp://www.tkk7.com/bnlovebn/archive/2008/05/26/202978.html#Feedback0http://www.tkk7.com/bnlovebn/comments/commentRss/202978.htmlhttp://www.tkk7.com/bnlovebn/services/trackbacks/202978.html取出字符中文没有qQ而写入确是ؕ码,
在java,jsp,数据库,表格都统一为、utf8或GBK{后Q?br /> 最后要在,my.ini或my.cnf中加入编?br /> 如:(x)
[mysqld]
default-character-set=utf8
default-storage-engine=INNODB

[client]

port=3306

[mysql]

default-character-set=utf8


 



]]>
linux下mysql(rpm)安装使用手册[转]http://www.tkk7.com/bnlovebn/archive/2008/05/26/202974.html重归本垒QBingQ?/dc:creator>重归本垒QBingQ?/author>Mon, 26 May 2008 08:59:00 GMThttp://www.tkk7.com/bnlovebn/archive/2008/05/26/202974.htmlhttp://www.tkk7.com/bnlovebn/comments/202974.htmlhttp://www.tkk7.com/bnlovebn/archive/2008/05/26/202974.html#Feedback0http://www.tkk7.com/bnlovebn/comments/commentRss/202974.htmlhttp://www.tkk7.com/bnlovebn/services/trackbacks/202974.html下蝲地址为:(x)http://dev.mysql.com/downloads/mysql/5.1.htmlQ打开此网,下拉|页扑ֈ“Linux x86 generic RPM (statically linked against glibc 2.2.5) downloads,扑ֈ“Server”?#8220;Client programs”,下蝲需要的上述两个rpm文g?/font>
2、安?/font>MySQL
   rpm文g是Red Hat公司开发的软g安装包,rpm可让Linux在安装Y件包时免除许多复杂的手箋。该命o(h)在安装时常用的参数是 –ivh ,其中i表示安装指定的rmp软g包,V表示安装时的详细信息Qh表示在安装期间出?#8220;#”W号来显C目前的安装q程。这个符号将持箋到安装完成后才停止?/font>
   1Q安装服务器?/font>
   在有两个rmp文g的目录下q行如下命o(h)Q?/font>
   [root@test1 local]# rpm -ivh
MySQL-server-5.1.7-0.i386.rpm MySQL-client-5.1.7-0.i386.rpm  
昄如下信息?
warning:
MySQL-server-5.1.7-0.i386.rpm

signature: NOKEY, key ID 5072e1f5
   Preparing...       ########################################### [100%]
   1:MySQL-server     ########################################### [100%]
    。。。。。。(省略昄Q?
   /usr/bin/mysqladmin -u root password 'new-password'
   /usr/bin/mysqladmin -u root -h test1 password 'new-password'
    。。。。。。(省略昄Q?
   Starting mysqld daemon with databases from /var/lib/mysql
   如出现如上信息,服务端安装完毕。测试是否成功可q行netstat看Mysql端口是否打开Q如打开表示服务已经启动Q安装成功。Mysql默认的端口是3306?
   [root@test1 local]# netstat -nat
   Active Internet connections (servers and established)
   Proto Recv-Q Send-Q Local Address      Foreign Address     State   
   tcp  0  0 0.0.0.0:3306     0.0.0.0:*      LISTEN   
   上面昄可以看出MySQL服务已经启动?
   2Q安装客L(fng)
   q行如下命o(h)Q?
   [root@test1 local]# rpm -ivh
MySQL-client-5.1.7-0.i386.rpm

   warning: MySQL-client-5.1.7-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
   Preparing...    ########################################### [100%]
   1:MySQL-client  ########################################### [100%]
   昄安装完毕?
   用下面的命o(h)q接mysql,试是否成功?
  三、登录MySQL

   dMySQL的命令是mysqlQ?mysql 的用语法如下:(x)
   mysql [-u username] [-h host] [-p[password]] [dbname]
   username ?password 分别?MySQL 的用户名与密码,mysql的初始管理帐hrootQ没有密码,注意Q这个root用户不是Linux的系l用戗MySQL默认用户是rootQ由于初始没有密码,W一ơ进时只需键入mysql卛_?
   [root@test1 local]# mysql
   Welcome to the MySQL monitor. Commands end with ; or \g.
   Your MySQL connection id is 1 to server version: 4.0.16-standard
   Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
   mysql>
   出现?#8220;mysql>”提示W,恭喜你,安装成功Q?
   增加了密码后的登录格式如下:(x)
   mysql -u root -p
   Enter password: (输入密码)
   其中-u后跟的是用户名,-p要求输入密码Q回车后在输入密码处输入密码?

   注意Q这个mysql文g?usr/bin目录下,与后面讲的启动文?etc/init.d/mysql不是一个文件?

   四、MySQL的几个重要目?

   MySQL安装完成后不象SQL Server默认安装在一个目录,它的数据库文件、配|文件和命o(h)文g分别在不同的目录Q了解这些目录非帔R要,其对于Linux的初学者,因ؓ(f) Linux本n的目录结构就比较复杂Q如果搞不清楚MySQL的安装目录那无从谈h入学?fn)?

   下面׃l一下这几个目录?

   1、数据库目录
   /var/lib/mysql/

   2、配|文?
   /usr/share/mysqlQmysql.server命o(h)?qing)配|文Ӟ

   3、相兛_?
   /usr/bin(mysqladmin mysqldump{命?

   4、启动脚?
   /etc/rc.d/init.d/Q启动脚本文件mysql的目录)
  五、修改登录密?

   MySQL默认没有密码Q安装完毕增加密码的重要性是不言而喻的?

   1、命?
   usr/bin/mysqladmin -u root password 'new-password'
   格式Qmysqladmin -u用户?-p旧密?password 新密?

   2、例?
   ?Q给root加个密码123456?
   键入以下命o(h) Q?
   [root@test1 local]# /usr/bin/mysqladmin -u root password 123456
   注:(x)因ؓ(f)开始时root没有密码Q所?p旧密码一就可以省略了?

   3、测试是否修Ҏ(gu)?
   1Q不用密码登?
   [root@test1 local]# mysql
   ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)
   昄错误Q说明密码已l修攏V?
   2Q用修改后的密码d
   [root@test1 local]# mysql -u root -p
   Enter password: (输入修改后的密码123456)
   Welcome to the MySQL monitor. Commands end with ; or \g.
   Your MySQL connection id is 4 to server version: 4.0.16-standard
   Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
   mysql>
   成功Q?
   q是通过mysqladmin命o(h)修改口o(h)Q也可通过修改库来更改口o(h)?

   六、启动与停止

   1、启?
   MySQL安装完成后启动文件mysql?etc/init.d目录下,在需要启动时q行下面命o(h)卛_?
   [root@test1 init.d]# /etc/init.d/mysql start

   2、停?
   /usr/bin/mysqladmin -u root -p shutdown

   3、自动启?
   1Q察看mysql是否在自动启动列表中
   [root@test1 local]# /sbin/chkconfig --list
   2Q把MySQLdCpȝ的启动服务组里面?
   [root@test1 local]# /sbin/chkconfig –- add mysql
   3Q把MySQL从启动服务组里面删除?
   [root@test1 local]# /sbin/chkconfig –-del mysql
七、更改MySQL目录

   MySQL默认的数据文件存储目录ؓ(f)/var/lib/mysql。假如要把目录移?home/data下需要进行下面几步:(x)

   1、home目录下徏立data目录
   cd /home
   mkdir data

   2、把MySQL服务q程停掉Q?
   mysqladmin -u root -p shutdown

   3、把/var/lib/mysql整个目录Ud/home/data
   mv /var/lib/mysql /home/data/
   q样把MySQL的数据文件移动到?home/data/mysql?

   4、找到my.cnf配置文g
   如果/etc/目录下没有my.cnf配置文gQ请?usr/share/mysql/下找?.cnf文gQ拷贝其中一个到/etc/q改名ؓ(f)my.cnf)中。命令如下:(x)
   [root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

   5、编辑MySQL的配|文?etc/my.cnf
   Z证MySQL能够正常工作Q需要指明mysql.sock文g的生位|。修改socket=/var/lib/mysql/mysql.sock一行中{号双的gؓ(f)Q?home/mysql/mysql.sock 。操作如下:(x)
   vi  my.cnf    (用vi工具~辑my.cnf文gQ找C列数据修改之)
   # The MySQL server
    [mysqld]
    port   = 3306
    #socket  = /var/lib/mysql/mysql.sockQ原内容Qؓ(f)了更E_?#8220;#”注释此行Q?
    socket  = /home/data/mysql/mysql.sock   Q加上此行)

   6、修改MySQL启动脚本/etc/rc.d/init.d/mysql
   最后,需要修改MySQL启动脚本/etc/rc.d/init.d/mysqlQ把其中datadir=/var/lib/mysql一行中Q等号右边的路径Ҏ(gu)你现在的实际存放路径Qhome/data/mysql?
   [root@test1 etc]# vi /etc/rc.d/init.d/mysql
   #datadir=/var/lib/mysql    Q注释此行)
   datadir=/home/data/mysql   Q加上此行)

   7、重新启动MySQL服务
   /etc/rc.d/init.d/mysql start
   或用reboot命o(h)重启Linux
   如果工作正常Ud成功了Q否则对照前面的7步再查一下?

   八、MySQL的常用操?

   注意QMySQL中每个命令后都要以分Pl尾?

   1、显C数据库
   mysql> show databases;
   +----------+
   | Database |
   +----------+
   | mysql  |
   | test   |
   +----------+
   2 rows in set (0.04 sec)
   Mysql刚安装完有两个数据库Qmysql和test。mysql库非帔R要,它里面有MySQL的系l信息,我们改密码和新增用户Q实际上是用这个库中的相关表进行操作?

   2、显C数据库中的?
   mysql> use mysql; Q打开库,Ҏ(gu)个库q行操作p打开此库Q类gfoxpro Q?
   Database changed

   mysql> show tables;
   +-----------------+
   | Tables_in_mysql |
   +-----------------+
   | columns_priv  |
   | db       |
   | func      |
   | host      |
   | tables_priv   |
   | user      |
   +-----------------+
   6 rows in set (0.01 sec)

   3、显C数据表的结构:(x)
   describe 表名;

   4、显C中的记录Q?
   select * from 表名;
   例如Q显Cmysql库中user表中的纪录。所有能对MySQL用户操作的用户都在此表中?
   Select * from user;

   5、徏库:(x)
   create database 库名;
   例如Q创Z个名字位aaa的库
   mysql> create databases aaa;
6、徏表:(x)
   use 库名Q?
   create table 表名 (字段讑֮列表)Q?
   例如Q在刚创建的aaa库中建立表name,表中有id(序号Q自动增?QxmQ姓名),xbQ性别Q?csnyQ出w年月)四个字段
   use aaa;
   mysql> create table name (id int(3) auto_increment not null primary key, xm char(8),xb char(2),csny date);
   可以用describe命o(h)察看刚徏立的表结构?
   mysql> describe name;

   +-------+---------+------+-----+---------+----------------+
   | Field | Type  | Null | Key | Default | Extra     |
   +-------+---------+------+-----+---------+----------------+
   | id  | int(3) |   | PRI | NULL  | auto_increment |
   | xm  | char(8) | YES |   | NULL  |        |
   | xb  | char(2) | YES |   | NULL  |        |
   | csny | date  | YES |   | NULL  |        |
   +-------+---------+------+-----+---------+----------------+

   7、增加记?
   例如Q增加几条相关纪录?
   mysql> insert into name values('','张三','?,'1971-10-01');
   mysql> insert into name values('','白云','?,'1972-05-20');
   可用select命o(h)来验证结果?
   mysql> select * from name;
   +----+------+------+------------+
   | id | xm  | xb  | csny    |
   +----+------+------+------------+
   | 1 | 张三 | 甗 | 1971-10-01 |
   | 2 | 白云 | 奟뀀 | 1972-05-20 |
   +----+------+------+------------+

   8、修改纪?
   例如Q将张三的出生年月改?971-01-10
   mysql> update name set csny='1971-01-10' where xm='张三';

   9、删除纪?
   例如Q删除张三的U录?
   mysql> delete from name where xm='张三';

   10、删库和删表
   drop database 库名;
   drop table 表名Q?

   ?ji)、增加MySQL用户

   格式Qgrant select on 数据?* to 用户名@dL identified by "密码"
?、增加一个用户user_1密码?23Q让他可以在ML上登录,q对所有数据库有查询、插入、修攏V删除的权限。首先用以root用户q入MySQLQ然后键入以下命令:(x)

   mysql> grant select,insert,update,delete on *.* to user_1@"%" Identified by "123";
?增加的用h十分危险的,如果知道了user_1的密码,那么他就可以在网上的M一台电(sh)脑上d你的MySQL数据库ƈ对你的数据ؓ(f)所Ʋؓ(f)了,解决办法见例2?

  ?、增加一个用户user_2密码?23,让此用户只可以在localhost上登录,q可以对数据库aaaq行查询、插入、修攏V删除的操作Qlocalhost指本C机,即MySQL数据库所在的那台LQ,q样用户即用知道user_2的密码,他也无法从网上直接访问数据库Q只能通过 MYSQLL来操作aaa库?

   mysql>grant select,insert,update,delete on aaa.* to user_2@localhost identified by "123";

   用新增的用户如果d不了MySQLQ在d时用如下命o(h)Q?

   mysql -u user_1 -p -h 192.168.113.50 Q?h后跟的是要登录主机的ip地址Q?

   十、备份与恢复

   1、备?

   例如Q将上例创徏的aaa库备份到文gback_aaa?

   [root@test1 root]# cd /home/data/mysql (q入到库目录Q本例库已由val/lib/mysql转到/home/data/mysqlQ见上述W七部分内容)
   [root@test1 mysql]# mysqldump -u root -p --opt aaa > back_aaa

   2、恢?

   [root@test mysql]# mysql -u root -p ccc < back_aaa


]]>
SQL Server数据的批量导入外部数?/title><link>http://www.tkk7.com/bnlovebn/archive/2008/05/14/200348.html</link><dc:creator>重归本垒QBingQ?/dc:creator><author>重归本垒QBingQ?/author><pubDate>Wed, 14 May 2008 02:00:00 GMT</pubDate><guid>http://www.tkk7.com/bnlovebn/archive/2008/05/14/200348.html</guid><wfw:comment>http://www.tkk7.com/bnlovebn/comments/200348.html</wfw:comment><comments>http://www.tkk7.com/bnlovebn/archive/2008/05/14/200348.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/bnlovebn/comments/commentRss/200348.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/bnlovebn/services/trackbacks/200348.html</trackback:ping><description><![CDATA[<p>如果你从事与数据库相关的工作Q有可能?x)涉及(qing)到数据从外部数据文g插入倒SQL Server的操作。本文将为大家演C如何利用BULK INSERT命o(h)来导入数据,q讲解怎样通过改变该命令的一些选项以便更方便且更有效地插入数据?</p> <div> <div id="tp5vzzr" class="guanggao"><span><br /> </span></div> <p>  如果你从事与数据库相关的工作Q有可能?x)涉及(qing)到数据从外部数据文g插入?strong>SQL Server</strong>的操作。本文将为大家演C如何利?strong>BULK INSERT</strong>命o(h)来导入数据,q讲解怎样通过改变该命令的一些选项以便更方便且更有效地插入数据?/p> <p>  <strong>BULK INSERT</strong></p> <p>  在SQL Server中,BULK INSERT是用来将外部文g以一U特定的格式加蝲到数据库表的<a target="_bank"><font color="#16387c">T-SQL</font></a>命o(h)。该命o(h)使开发h员能够直接将数据加蝲到数据库表中Q而不需要用类gIntegration Servicesq样的外部程序。虽然BULK INSERT不允许包含Q何复杂的逻辑或{换,但能够提供与格式化相关的选项Qƈ告诉我们导入是如何实现的。BULK INSERT有一个用限Ӟ是只能数据导入SQL Server?/p> <p>  <strong>插入数据</strong></p> <p>  下面的例子能让我们更好的理解如何使用BULK INSERT命o(h)。首先,我们来创Z个名为Sales的表Q我们将要把来自文本文g的数据插入到q个表中?/p> <p> <table class="FCK__ShowTableBorders" style="border-right: #cccccc 1px dotted; table-layout: fixed; border-top: #cccccc 1px dotted; border-left: #cccccc 1px dotted; border-bottom: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0"> <tbody> <tr> <td style="word-wrap: break-word" bgcolor="#f3f3f3">  CREATE TABLE [dbo].[Sales] <br />   ( <br />   [SaleID] [int], <br />   [Product] [varchar](10) NULL, <br />   [SaleDate] [datetime] NULL, <br />   [SalePrice] [money] NULL <br />   )</td> </tr> </tbody> </table> </p> <p>  当我们用BULK INSERT命o(h)来插入数据时Q不要启动目标表中的触发器,因ؓ(f)触发器会(x)减缓数据导入的进E?/p> <p>  在下一个例子中Q我们将在Sales表上创徏触发器,用来打印插入到表中的记录的数量?/p> <p> <table class="FCK__ShowTableBorders" style="border-right: #cccccc 1px dotted; table-layout: fixed; border-top: #cccccc 1px dotted; border-left: #cccccc 1px dotted; border-bottom: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0"> <tbody> <tr> <td style="word-wrap: break-word" bgcolor="#f3f3f3">  CREATE TRIGGER tr_Sales <br />   ON Sales <br />   FOR INSERT <br />   AS <br />   BEGIN <br />   PRINT CAST(@@ROWCOUNT AS VARCHAR(5)) + ' rows Inserted.' <br />   END</td> </tr> </tbody> </table> </p> <p>  q里我们选择文本文g作ؓ(f)源数据文Ӟ文本文g中的值通过逗号分割开。该文g包含1000条记录,而且其字D和Sales表的字段直接兌。由于该文本文g中的值是由逗号分割开的,我们只需要指定FIELDTERMINATOR卛_。注意,当下面这条语句运行时Q我们刚刚创建的触发器ƈ没有启动Q?/p> <p>  BULK INSERT Sales FROM 'c:SalesText.txt' WITH (FIELDTERMINATOR = ',')</p> <p>  当我们要的数据量非常大时Q有时候就需要启动触发器。下面的脚本使用了FIRE_TRIGGERS选项来指明在目标表上的Q何触发器都应当启动:(x)</p> <p>  BULK INSERT Sales FROM 'c:SalesText.txt' WITH (FIELDTERMINATOR = ',', FIRE_TRIGGERS)</p> <p>  我们可以使用BATCHSIZE指o(h)来设|在单个事务中可以插入到表中的记录的数量。在前一个例子中Q所有的1000条记录都在同一个事务中被插入到目标表里。下面的例子Q我们将BATCHSIZE参数讄?Q也是说要对该表执?00ơ独立的插入事务。这也意味着启动500ơ触发器Q所以将?00咯打印指令输出到屏幕上?/p> <h5>  如果你从事与数据库相关的工作Q有可能?x)涉及(qing)到数据从外部数据文g插入倒SQL Server的操作。本文将为大家演C如何利用BULK INSERT命o(h)来导入数据,q讲解怎样通过改变该命令的一些选项以便更方便且更有效地插入数据?/h5> <div> <div id="t1pbvjl" class="guanggao"><span><br /> </span></div> <p> </p> <p>  BULK INSERT Sales FROM 'c:SalesText.txt' WITH (FIELDTERMINATOR = ',', FIRE_TRIGGERS, BATCHSIZE = 2)</p> <p>  BULK INSERT不仅仅可以应用于SQL Server 2005的本地映驱动器。下面的语句告诉我们如何从名ؓ(f)FileServer的服务器的D盘中SalesText文g的数据导入?/p> <p>  BULK INSERT Sales FROM 'FileServerD$SalesText.txt' WITH (FIELDTERMINATOR = ',')</p> <p>  有时候,我们在执行导入操作以前,最好能先查看一下将要输入的数据。下面的语句在用BULK命o(h)Ӟ使用了OPENROWSET函数Q以便从SalesText文本文g中读取源数据。该语句同时q需要用一个格式文?此处没有列出文g的具体内?来表明该文本文g中的数据格式?/p> <p> <table class="FCK__ShowTableBorders" style="border-right: #cccccc 1px dotted; table-layout: fixed; border-top: #cccccc 1px dotted; border-left: #cccccc 1px dotted; border-bottom: #cccccc 1px dotted" cellspacing="0" cellpadding="6" width="95%" align="center" border="0"> <tbody> <tr> <td style="word-wrap: break-word" bgcolor="#f3f3f3">  SELECT * <br />   FROM OPENROWSET(BULK 'c:SalesText.txt' , <br />   FORMATFILE='C:SalesFormat.Xml' <br />   ) AS mytable; <br />   GO</td> </tr> </tbody> </table> </p> <p> </p> </div> </div> <p><br />  </p> <img src ="http://www.tkk7.com/bnlovebn/aggbug/200348.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/bnlovebn/" target="_blank">重归本垒QBingQ?/a> 2008-05-14 10:00 <a href="http://www.tkk7.com/bnlovebn/archive/2008/05/14/200348.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ibatis动态查询条?http://www.tkk7.com/bnlovebn/archive/2008/04/17/193688.html重归本垒QBingQ?/dc:creator>重归本垒QBingQ?/author>Thu, 17 Apr 2008 03:30:00 GMThttp://www.tkk7.com/bnlovebn/archive/2008/04/17/193688.htmlhttp://www.tkk7.com/bnlovebn/comments/193688.htmlhttp://www.tkk7.com/bnlovebn/archive/2008/04/17/193688.html#Feedback4http://www.tkk7.com/bnlovebn/comments/commentRss/193688.htmlhttp://www.tkk7.com/bnlovebn/services/trackbacks/193688.html<select id="SelectEemployee" parameterClass="string" resultMap = "employee-result">

           select * from employee

//动态SQL语句

            <dynamic prepend="WHERE">

               <isParameterPresent>

                     emp_id = #value#

               </isParameterPresent>

            </dynamic>

       </select>

    </statements>

</sqlMap>     

/*动态SQL的写法:(x)

开?<dynamic

条g成立时前面要加的字符?prepend ="字符?>

<属性关键字 (见下?

prepend="字符?

判断条g的对象属性名 property="字符?

如果是属性关键字是比较条件时,字符串存放要比较的值compareValue="字符?>

要显C的条g?/span>

</属性关键字>

l束</dynamic>

*/

/*动态SQL的参数有

属性关键字

含义

<isEqual>

如果参数相等于?/span>则查询条件有效?/span>

<isNotEqual>

如果参数不等于值则查询条g有效?/span>

<isGreaterThan>

如果参数大于值则查询条g有效?/span>

<isGreaterEqual>

如果参数{于值则查询条g有效?/span>

<isLessEqual>

如果参数于值则查询条g有效。如下所C:(x)

<isLessEqual prepend = ”AND” property = ”age” compareValue = ”18” >

ADOLESCENT = ‘TRUE’

</isLessEqual>

<isPropertyAvailable>

如果参数有用则查询条g有效?/span>

<isNotPropertyAvailable>

如果参数没有使用则查询条件有效?/span>

<isNull>

如果参数为NULL则查询条件有效?/span>

<isNotNull>

如果参数不ؓ(f)NULL则查询条件有效?/span>

<isEmpty>

如果参数为空则查询条件有效?/span>

<isNotEmpty>

如果参数不ؓ(f)I则查询条g有效。参数的数据cd?/span>Collection?/span>String 时参C?/span>NULL?#8220;”。如下所C:(x)

<isNotEmpty prepend=”AND” property=”firstName” >

FIRST_NAME=#firstName#

</isNotEmpty>

<isParameterPresent>

如果参数cM为NULL则查询条件有效?/span>

<isNotParameterPresent>

Checks to see if the parameter object is not present (null). Example Usage:

<isNotParameterPresent prepend=”AND”>

EMPLOYEE_TYPE = ‘DEFAULT’

</isNotParameterPresent>

 



]]>
使用 TRUNCATE TABLE 删除所有行http://www.tkk7.com/bnlovebn/archive/2008/03/11/185452.html重归本垒QBingQ?/dc:creator>重归本垒QBingQ?/author>Tue, 11 Mar 2008 10:16:00 GMThttp://www.tkk7.com/bnlovebn/archive/2008/03/11/185452.htmlhttp://www.tkk7.com/bnlovebn/comments/185452.htmlhttp://www.tkk7.com/bnlovebn/archive/2008/03/11/185452.html#Feedback0http://www.tkk7.com/bnlovebn/comments/commentRss/185452.htmlhttp://www.tkk7.com/bnlovebn/services/trackbacks/185452.htmlTruncate是SQL中的一个删除数据表内容的语句,用法是:(x)
TRUNCATE TABLE [Table Name]?/strong>
   下面是对Truncate语句在MSSQLServer2000中用法和原理的说明:(x)
Truncate table 表名 速度?而且效率?因ؓ(f):
TRUNCATE TABLE 在功能上与不?WHERE 子句?DELETE 语句相同Q二者均删除表中的全部行。但 TRUNCATE TABLE ?DELETE 速度快,且用的pȝ和事务日志资源少?
DELETE 语句每次删除一行,q在事务日志中ؓ(f)所删除的每行记录一VTRUNCATE TABLE 通过释放存储表数据所用的数据|删除数据Qƈ且只在事务日志中记录늚释放?
TRUNCATE TABLE 删除表中的所有行Q但表结构及(qing)其列、约束、烦引等保持不变。新行标识所用的计数值重|ؓ(f)该列的种子。如果想保留标识计数|h?DELETE。如果要删除表定义及(qing)其数据,请?DROP TABLE 语句?
对于?FOREIGN KEY U束引用的表Q不能?TRUNCATE TABLEQ而应使用不带 WHERE 子句?DELETE 语句。由?TRUNCATE TABLE 不记录在日志中,所以它不能Ȁz触发器?
TRUNCATE TABLE 不能用于参与了烦引视囄表?br />

]]>
LOAD DATA INFILE句法[转]http://www.tkk7.com/bnlovebn/archive/2008/03/11/185450.html重归本垒QBingQ?/dc:creator>重归本垒QBingQ?/author>Tue, 11 Mar 2008 10:12:00 GMThttp://www.tkk7.com/bnlovebn/archive/2008/03/11/185450.htmlhttp://www.tkk7.com/bnlovebn/comments/185450.htmlhttp://www.tkk7.com/bnlovebn/archive/2008/03/11/185450.html#Feedback0http://www.tkk7.com/bnlovebn/comments/commentRss/185450.htmlhttp://www.tkk7.com/bnlovebn/services/trackbacks/185450.html     INTO TABLE tbl_name
    [FIELDS
        [TERMINATED BY '\t']
        [OPTIONALLY] ENCLOSED BY '']
        [ESCAPED BY '\\' ]]
    [LINES TERMINATED BY '\n']
    [IGNORE number LINES]
    [(col_name,...)]

LOAD DATA INFILE语句从一个文本文件中以很高的速度d一个表中。如果指定LOCAL关键词,从客户主文g。如果LOCAL没指定,文g必须位于服务?/a>上?LOCAL在MySQL3.22.6或以后版本中可用。)

Z安全原因Q当d位于服务器上的文本文件时Q文件必d于数据库目录或可被所有hd。另外,ZҎ(gu)务器上文件用LOAD DATA INFILEQ在服务器主Z你必Lfile的权限。见6.5 由MySQL提供的权限?

如果你指定关键词LOW_PRIORITYQLOAD DATA语句的执行被推迟到没有其他客戯取表后?

使用LOCAL比让服务器直接存取文g慢些Q因为文件的内容必须从客户主Z送到服务器主机。在另一斚wQ你不需要file权限装蝲本地文g?

你也可以使用mysqlimport实用E序装蝲数据文gQ它由发送一个LOAD DATA INFILE命o(h)到服务器来运作?--local选项使得mysqlimport从客户主Zd数据。如果客户和服务器支持压~协议,你能指定--compress在较慢的|络上获得更好的性能?

当在服务器主ZL文gӞ服务器用下列规则:(x)

如果l出一个绝对\径名Q服务器使用该\径名?
如果l出一个有一个或多个前置部g的相对\径名Q服务器相对服务器的数据目录搜烦文g?
如果l出一个没有前|部件的一个文件名Q服务器在当前数据库的数据库目录L文g?
注意q些规则意味着一个像“./myfile.txt”l出的文件是从服务器的数据目录读取,而作?#8220;myfile.txt”l出的一个文件是从当前数据库的数据库目录下读取。也要注意,对于下列哪些语句Q对db1文g从数据库目录dQ而不是db2Q?

mysql> USE db1;
mysql> LOAD DATA INFILE "./data.txt" INTO TABLE db2.my_table;

REPLACE和IGNORE关键词控制对现有的唯一键记录的重复的处理。如果你指定REPLACEQ新行将代替有相同的唯一键值的现有行。如果你指定IGNOREQ蟩q有唯一键的现有行的重复行的输入。如果你不指定Q何一个选项Q当扑ֈ重复键键Ӟ出现一个错误,q且文本文g的余下部分被忽略时?

如果你用LOCAL关键词从一个本地文件装载数据,服务器没有办法在操作的当中停止文件的传输Q因此缺省的行ؓ(f)好像IGNORE被指定一栗?

LOAD DATA INFILE是SELECT ... INTO OUTFILE的逆操作,
SELECT句法。ؓ(f)了将一个数据库的数据写入一个文Ӟ使用SELECT ... INTO OUTFILEQؓ(f)了将文gd数据库,使用LOAD DATA INFILE。两个命令的FIELDS和LINES子句的语法是相同的。两个子句是可选的Q但是如果指定两个,FIELDS必须在LINES之前?

如果你指定一个FIELDS子句Q它的每一个子?TERMINATED BY, [OPTIONALLY] ENCLOSED BY和ESCAPED BY)也是可选的Q除了你必须臛_指定他们之一?

如果你不指定一个FIELDS子句Q缺省g如果你这样写的相同:(x)

FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'

如果你不指定一个LINES子句Q缺省g如果你这样写的相同:(x)

LINES TERMINATED BY '\n'
换句话说Q缺省值导致读取输入时QLOAD DATA INFILE表现如下Q?

在换行符处寻找行边界
在定位符处将行分q字D?
不要期望字段׃Q何引号字W封?
由“\”开头的定位W、换行符?#8220;\”解释是字D值的部分字面字符
相反Q缺省值导致在写入输出ӞSELECT ... INTO OUTFILE表现如下Q?

在字D之间写定位W?
不用M引号字符装字段
使用“\”转义出现在字D中的定位符、换行符?#8220;\”字符
在行֤写换行符
注意Qؓ(f)了写入FIELDS ESCAPED BY '\\'Q对作ؓ(f)一条单个的反斜U被d的|你必L?条反斜线倹{?

IGNORE number LINES选项可被用来忽略在文件开始的一个列名字的头Q?

mysql> LOAD DATA INFILE "/tmp/file_name" into table test IGNORE 1 LINES;

当你与LOAD DATA INFILE一起用SELECT ... INTO OUTFILE一个数据库的数据写q一个文件ƈ且随后马上将文gd数据库时Q两个命令的字段和处理选项必须匚wQ否则,LOAD DATA INFILE不能正解释文件的内容。假定你使用SELECT ... INTO OUTFILE由逗号分隔的字D写入一个文Ӟ(x)

mysql> SELECT * FROM table1 INTO OUTFILE 'data.txt'
           FIELDS TERMINATED BY ','
           FROM ...

Z由逗号分隔的文件读回来Q正的语句是Q?

mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY ',';

相反Q如果你试图用下面显C的语句d文gQ它不会(x)工作Q因为它命o(h)LOAD DATA INFILE在字D之间寻扑֮位符Q?

mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
           FIELDS TERMINATED BY '\t';

可能的结果是每个输入行将被解释ؓ(f)单个的字Dc?/p>

LOAD DATA INFILE能被用来d从外部来源获得的文g。例如,以dBASE格式的文件将有由逗号分隔q用双引号包围的字段。如果文件中的行由换行符l止Q下面显C的命o(h)说明你将用来装蝲文g的字D和行处理选项Q?

mysql> LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
           FIELDS TERMINATED BY ',' ENCLOSED BY '"'
           LINES TERMINATED BY '\n';

M字段或行处理选项可以指定一个空字符?'')。如果不是空QFIELDS [OPTIONALLY] ENCLOSED BY和FIELDS ESCAPED BY值必L一个单个字W。FIELDS TERMINATED BY和LINES TERMINATED BY值可以是过一个字W。例如,写入由回车换行符对(CR+LFQ终止的行,或读取包含这栯的一个文Ӟ指定一个LINES TERMINATED BY '\r\n'子句?

FIELDS [OPTIONALLY] ENCLOSED BY控制字段的包围字W。对于输?SELECT ... INTO OUTFILE)Q如果你省略OPTIONALLYQ所有的字段由ENCLOSED BY字符包围。对于这L(fng)输出的一个例?使用一个逗号作ؓ(f)字段分隔W?昄在下面:(x)

"1","a string","100.20"
"2","a string containing a , comma","102.20"
"3","a string containing a \" quote","102.20"
"4","a string containing a \", quote and comma","102.20"

如果你指定OPTIONALLYQENCLOSED BY字符仅被用于包围CHAR和VARCHAR字段Q?

1,"a string",100.20
2,"a string containing a , comma",102.20
3,"a string containing a \" quote",102.20
4,"a string containing a \", quote and comma",102.20

注意Q一个字Dg的ENCLOSED BY字符的出现通过用ESCAPED BY字符作ؓ(f)其前~来{义。也要注意,如果你指定一个空ESCAPED BY|可能产生不能被LOAD DATA INFILE正确d的输出。例如,如果转义字符为空Q上面显C的输出昄如下。注意到在第四行的第二个字段包含跟随引号的一个逗号Q它(错误?好象要终止字D:(x)

1,"a string",100.20
2,"a string containing a , comma",102.20
3,"a string containing a " quote",102.20
4,"a string containing a ", quote and comma",102.20

对于输入QENCLOSED BY字符如果存在Q它从字D值的N被剥厅R(不管是否指定OPTIONALLY都是q样QOPTIONALLY对于输入解释不v作用)由ENCLOSED BY字符领先的ESCAPED BY字符出现被解释ؓ(f)当前字段值的一部分。另外,出现在字D中重复的ENCLOSED BY被解释ؓ(f)单个ENCLOSED BY字符Q如果字D|w以该字W开始。例如,如果ENCLOSED BY '"'被指定,引号如下处理Q?

"The ""BIG"" boss"  -> The "BIG" boss
The "BIG" boss      -> The "BIG" boss
The ""BIG"" boss    -> The ""BIG"" boss

FIELDS ESCAPED BY控制如何写入或读出特D字W。如果FIELDS ESCAPED BY字符不是I的Q它被用于前~在输Z的下列字W:(x)

FIELDS ESCAPED BY字符
FIELDS [OPTIONALLY] ENCLOSED BY字符
FIELDS TERMINATED BY和LINES TERMINATED BY值的W一个字W?
ASCII 0Q实际上后l{义字W写?ASCII'0'Q而不是一个零值字节)
如果FIELDS ESCAPED BY字符是空的,没有字符被{义。指定一个空转义字符可能不是一个好LQ特别是如果在你数据中的字段值包含刚才给出的表中的Q何字W?

对于输入Q如果FIELDS ESCAPED BY字符不是I的Q该字符的出现被剥去q且后箋字符在字面上作ؓ(f)字段值的一个部分。例外是一个{义的“0”?#8220;N”Q即Q\0或\NQ如果{义字W是“\”)。这些序列被解释为ASCII 0Q一个零值字节)和NULL。见下面关于NULL处理的规则?

对于更多关于“\”- 转义句法的信息,在某些情况下Q字D和行处理选项怺作用Q?

如果LINES TERMINATED BY是一个空字符串ƈ且FIELDS TERMINATED BY是非I的Q行也用FIELDS TERMINATED BYl止?
如果FIELDS TERMINATED BY和FIELDS ENCLOSED BY值都是空?'')Q一个固定行(非限定的)格式被用。用固定行格式,在字D之间不使用分隔W。相反,列值只用列?#8220;昄”宽度被写入和d。例如,如果列被声明为INT(7)Q列的g?个字W的字段被写入。对于输入,列值通过d7个字W获得。固定行格式也媄响NULL值的处理Q见下面。注意如果你正在使用一个多字节字符集,固定长度格式不工作?
NULL值的处理有多U,取决于你使用的FIELDS和LINES选项Q?

对于~省FIELDS和LINES|对输出,NULL被写成\NQ对输入Q\N被作为NULLd(假定ESCAPED BY字符?#8220;\”)?
如果FIELDS ENCLOSED BY不是I的Q包含以文字词的NULL作ؓ(f)它的值的字段作ؓ(f)一个NULLDd(q不同于包围在FIELDS ENCLOSED BY字符中的字NULLQ它作ؓ(f)字符?NULL'd)?
如果FIELDS ESCAPED BY是空的,NULL作ؓ(f)字NULL被写入?
用固定行格式(它发生在FIELDS TERMINATED BY和FIELDS ENCLOSED BY都是I的时?QNULL作ؓ(f)一个空字符串被写入。注意,在写入文件时Q这DNULL和空字符串在表中不能区分Q因Z们都作ؓ(f)I字W串被写入。如果在d文g旉要能区分q两者,你应该不使用固定行格式?
一些不被LOAD DATA INFILE支持的情况:(x)

固定长度的行(FIELDS TERMINATED BY和FIELDS ENCLOSED BY都ؓ(f)I?和BLOB或TEXT列?
如果你指定一个分隔符与另一个相同,或是另一个的前缀QLOAD DATA INFILE不能正确地解释输入。例如,下列FIELDS子句导致问题:(x)
FIELDS TERMINATED BY '"' ENCLOSED BY '"'

如果FIELDS ESCAPED BY是空的,一个包含跟随FIELDS TERMINATED BYg后的FIELDS ENCLOSED BY或LINES TERMINATED BY的字D值将使得LOAD DATA INFILEq早地终止读取一个字D|行。这是因为LOAD DATA INFILE不能正确地决定字D|行值在哪儿l束?
下列例子装蝲所有persondata表的行:(x)

mysql> LOAD DATA INFILE 'persondata.txt' INTO TABLE persondata;

没有指定字段表,所以LOAD DATA INFILE期望输入行对每个表列包含一个字Dc用缺省FIELDS和LINES倹{?

如果你希望仅仅装载一张表的某些列Q指定一个字D表Q?

mysql> LOAD DATA INFILE 'persondata.txt'
           INTO TABLE persondata (col1,col2,...);

如果在输入文件中的字D顺序不同于表中列的序Q你也必L定一个字D表。否则,MySQL不能知道如何匚w输入字段和表中的列?

如果一个行有很的字段Q对于不存在输入字段的列被设|ؓ(f)~省倹{?/p>

如果字段值缺省,I字D值有不同的解释:(x)

对于字符串类型,列被讄为空字符丌Ӏ?
对于数字cdQ列被设|ؓ(f)0?
对于日期和时间类型,列被讄cd的适当“?#8221;倹{?
如果列有一个NULLQ或(只对W一个TIMESTAMP?在指定一个字D表Ӟ如果TIMESTAMP列从字段表省掉,TIMESTAMP列只被设|ؓ(f)当前的日期和旉?

如果输入行有太多的字D,多余的字D被忽略q且警告数字??

LOAD DATA INFILE认ؓ(f)所有的输入是字W串Q因此你不能像你能用INSERT语句的ENUM或SET列的方式使用数字倹{所有的ENUM和SET值必M为字W串被指定!

如果你正在用C APIQ当LOAD DATA INFILE查询完成Ӟ你可通过调用API函数mysql_info()得到有关查询的信息。信息字W串的格式显C在下面Q?

Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
当值通过INSERT语句插入Ӟ在某些情况下出现警告Q除了在输入行中有太或太多的字D|QLOAD DATA INFILE也生警告。警告没?a title="存储" style="color: #000000" target="_blank">存储在Q何地方;警告数字仅能用于表明一切是否顺利。如果你得到警告q且惌切知道你ؓ(f)什么得C们,一个方法是使用SELECT ... INTO OUTFILE到另外一个文件ƈ且把它与你的原版输入文g比较?/p>

 



]]>
未与信QSQL Serverq接相关联的解决Ҏ(gu)http://www.tkk7.com/bnlovebn/archive/2007/06/25/126110.html重归本垒QBingQ?/dc:creator>重归本垒QBingQ?/author>Mon, 25 Jun 2007 07:06:00 GMThttp://www.tkk7.com/bnlovebn/archive/2007/06/25/126110.htmlhttp://www.tkk7.com/bnlovebn/comments/126110.htmlhttp://www.tkk7.com/bnlovebn/archive/2007/06/25/126110.html#Feedback0http://www.tkk7.com/bnlovebn/comments/commentRss/126110.htmlhttp://www.tkk7.com/bnlovebn/services/trackbacks/126110.html
建好SQL数据库,讄好了用户名与密码Q连接也好了Q却出现了上q问题, 原困是未讄SQL SERVERd认证模式为؜合认证模式,因ؓ(f)SQL SERVER默认安装后认证模式ؓ(f)WINDOWS认证模式Q从而导致出错?/p>

解决Ҏ(gu)Q?br>'www.knowsky.com
启动SQLSERVER企业理器,选择要进行认证模式设|的服务器。右击该服务器,在弹单中选择属性,SQL SERVER弹出属性对话框
 

在属性对话框中选择安全性选项Q在w䆾验证处选择“SQL Server和W(xu)indows”Q然后确定?



]]>
数字或值错?/title><link>http://www.tkk7.com/bnlovebn/archive/2007/05/21/118956.html</link><dc:creator>重归本垒QBingQ?/dc:creator><author>重归本垒QBingQ?/author><pubDate>Mon, 21 May 2007 10:21:00 GMT</pubDate><guid>http://www.tkk7.com/bnlovebn/archive/2007/05/21/118956.html</guid><wfw:comment>http://www.tkk7.com/bnlovebn/comments/118956.html</wfw:comment><comments>http://www.tkk7.com/bnlovebn/archive/2007/05/21/118956.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/bnlovebn/comments/commentRss/118956.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/bnlovebn/services/trackbacks/118956.html</trackback:ping><description><![CDATA[java.sql.SQLException: ORA-06502: PL/SQL: 数字或值错?<br>ORA-06512: ?SCOTT.PKG_JT_CUST_BOOKING", line 28<br>ORA-06512: 在line 1<br><br>l查Q原来是PKG_JT_CUST_BOOKING中的变量定义的太了Q?br>以至溢出?br> <img src ="http://www.tkk7.com/bnlovebn/aggbug/118956.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/bnlovebn/" target="_blank">重归本垒QBingQ?/a> 2007-05-21 18:21 <a href="http://www.tkk7.com/bnlovebn/archive/2007/05/21/118956.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>创徏oracle,packpage CZQ排序,分页Q查?/title><link>http://www.tkk7.com/bnlovebn/archive/2007/05/17/118092.html</link><dc:creator>重归本垒QBingQ?/dc:creator><author>重归本垒QBingQ?/author><pubDate>Thu, 17 May 2007 06:43:00 GMT</pubDate><guid>http://www.tkk7.com/bnlovebn/archive/2007/05/17/118092.html</guid><wfw:comment>http://www.tkk7.com/bnlovebn/comments/118092.html</wfw:comment><comments>http://www.tkk7.com/bnlovebn/archive/2007/05/17/118092.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/bnlovebn/comments/commentRss/118092.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/bnlovebn/services/trackbacks/118092.html</trackback:ping><description><![CDATA[<p><br><br> </p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">CREATE</span><span style="COLOR: #000000"> </span><span style="COLOR: #808080">OR</span><span style="COLOR: #000000"> </span><span style="COLOR: #ff00ff">REPLACE</span><span style="COLOR: #000000"> PACKAGE SCOTT.pkg_test </span><span style="COLOR: #0000ff">as</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_44_110_Open_Image onclick="this.style.display='none'; Codehighlighter1_44_110_Open_Text.style.display='none'; Codehighlighter1_44_110_Closed_Image.style.display='inline'; Codehighlighter1_44_110_Closed_Text.style.display='inline';" src="http://www.tkk7.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_44_110_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_44_110_Closed_Text.style.display='none'; Codehighlighter1_44_110_Open_Image.style.display='inline'; Codehighlighter1_44_110_Open_Text.style.display='inline';" src="http://www.tkk7.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_44_110_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id=Codehighlighter1_44_110_Open_Text><span style="COLOR: #008080">/*</span><span style="COLOR: #008080"> 定义ref cursorcd<br><img src="http://www.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>不加returncdQؓ(f)q型,允许动态sql查询Q?br><img src="http://www.tkk7.com/Images/OutliningIndicators/InBlock.gif" align=top>否则为强cdQ无法用动态sql查询;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #008080">*/</span></span><span style="COLOR: #000000"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>type myrctype </span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000"> ref </span><span style="COLOR: #0000ff">cursor</span><span style="COLOR: #000000">; <br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">函数x</span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000"> get(intID </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000"> , bbn out </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">) </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> myrctype;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">Procedure</span><span style="COLOR: #000000"> getstudent( <br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>        intID </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>       return_list out myrctype <br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>  );<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000"> getforpage(  <br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>    Pcount out </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,               </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">q回分页L</span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">    Pindex </span><span style="COLOR: #808080">in</span><span style="COLOR: #000000"> </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,                </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">分页索引   </span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">    Psize </span><span style="COLOR: #808080">in</span><span style="COLOR: #000000"> </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,              </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">面大小</span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">    Pordby  </span><span style="COLOR: #808080">in</span><span style="COLOR: #000000"> </span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar</span><span style="COLOR: #000000">               </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">排序字段</span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">) </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> myrctype;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">Procedure</span><span style="COLOR: #000000"> getforpagep( <br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>    Pcount out </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,               </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">q回分页L</span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">    return_list out myrctype,<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>    Pindex </span><span style="COLOR: #808080">in</span><span style="COLOR: #000000"> </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,                </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">分页索引   </span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">    Psize </span><span style="COLOR: #808080">in</span><span style="COLOR: #000000"> </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,               </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">面大小</span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">    Pordby   </span><span style="COLOR: #808080">in</span><span style="COLOR: #000000"> </span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar</span><span style="COLOR: #000000">               </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">排序字段</span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">  );<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000"> pkg_test;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span></div> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">CREATE</span><span style="COLOR: #000000"> </span><span style="COLOR: #808080">OR</span><span style="COLOR: #000000"> </span><span style="COLOR: #ff00ff">REPLACE</span><span style="COLOR: #000000"> PACKAGE BODY SCOTT.pkg_test </span><span style="COLOR: #0000ff">as</span><span style="COLOR: #000000"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">函数?/span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000"> get(intID </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000"> ,bbn out </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">) </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> myrctype </span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>        rc myrctype; </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">定义ref cursor变量</span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">        sqlstr </span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar2</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">500</span><span style="COLOR: #000000">);<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>        </span><span style="COLOR: #0000ff">begin</span><span style="COLOR: #000000"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>            </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> intID</span><span style="COLOR: #808080">=</span><span style="FONT-WEIGHT: bold; COLOR: #800000">0</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">then</span><span style="COLOR: #000000"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>                </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">静态测试,直接用select语句直接q回l果</span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">                </span><span style="COLOR: #0000ff">open</span><span style="COLOR: #000000"> rc </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">select</span><span style="COLOR: #000000"> id,name,sex,address,postcode,birthday </span><span style="COLOR: #0000ff">from</span><span style="COLOR: #000000"> student;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>            </span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>                </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">动态sql赋|?w_id来申明该变量从外部获?/span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">                sqlstr :</span><span style="COLOR: #808080">=</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">select id,name,sex,address,postcode,birthday from student where id=:w_id</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>                </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">动态测试,用sqlstr字符串返回结果,用using关键词传递参?/span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">                </span><span style="COLOR: #0000ff">open</span><span style="COLOR: #000000"> rc </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000"> sqlstr using intid;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>            </span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>        bbn :</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000"> </span><span style="FONT-WEIGHT: bold; COLOR: #800000">0</span><span style="COLOR: #000000">;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> rc;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>    </span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000"> get;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>    <br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>  </span><span style="COLOR: #0000ff">Procedure</span><span style="COLOR: #000000"> getstudent( <br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>         intID </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>       return_list out myrctype <br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>  )</span><span style="COLOR: #0000ff">as</span><span style="COLOR: #000000"> <br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>   <br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>   </span><span style="COLOR: #0000ff">begin</span><span style="COLOR: #000000"> <br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>       </span><span style="COLOR: #0000ff">open</span><span style="COLOR: #000000"> return_list<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>       </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000"> <br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>        </span><span style="COLOR: #0000ff">select</span><span style="COLOR: #000000"> id,name,sex,address,postcode,birthday </span><span style="COLOR: #0000ff">from</span><span style="COLOR: #000000"> student;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>  </span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000"> getstudent; <br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">function</span><span style="COLOR: #000000"> getforpage(  <br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>    Pcount out </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,               </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">q回分页L</span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">    Pindex </span><span style="COLOR: #808080">in</span><span style="COLOR: #000000"> </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,                </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">分页索引   </span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">    Psize </span><span style="COLOR: #808080">in</span><span style="COLOR: #000000"> </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,              </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">面大小</span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">    Pordby  </span><span style="COLOR: #808080">in</span><span style="COLOR: #000000"> </span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar</span><span style="COLOR: #000000">               </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">排序字段</span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">) </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> myrctype<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>    </span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>          rc myrctype; </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">定义ref cursor变量</span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">          sqlstr </span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar2</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">500</span><span style="COLOR: #000000">);<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>          v_sql </span><span style="FONT-WEIGHT: bold; COLOR: #000000">VARCHAR2</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1000</span><span style="COLOR: #000000">);<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>          v_count </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">;  <br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>          v_Plow </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>          v_Phei </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>        </span><span style="COLOR: #0000ff">begin</span><span style="COLOR: #000000"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>            sqlstr :</span><span style="COLOR: #808080">=</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">select id,name,sex,address,postcode,birthday from student</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>              </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">----------------------------------------------------------取分|L</span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">              v_sql :</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">select count(*) from (</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"> </span><span style="COLOR: #808080">||</span><span style="COLOR: #000000"> sqlstr </span><span style="COLOR: #808080">||</span><span style="COLOR: #000000"> </span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">)</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>              </span><span style="COLOR: #0000ff">execute</span><span style="COLOR: #000000"> immediate v_sql </span><span style="COLOR: #0000ff">into</span><span style="COLOR: #000000"> v_count;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>              Pcount :</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000"> ceil(v_count</span><span style="COLOR: #808080">/</span><span style="COLOR: #000000">Psize);<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>              </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">----------------------------------------------------------昄L内?/span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">              v_Phei :</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000"> Pindex </span><span style="COLOR: #808080">*</span><span style="COLOR: #000000"> Psize </span><span style="COLOR: #808080">+</span><span style="COLOR: #000000"> Psize;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>              v_Plow :</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000"> v_Phei </span><span style="COLOR: #808080">-</span><span style="COLOR: #000000"> Psize </span><span style="COLOR: #808080">+</span><span style="COLOR: #000000"> </span><span style="FONT-WEIGHT: bold; COLOR: #800000">1</span><span style="COLOR: #000000">;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>              </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">Psql := 'select rownum rn,t.* from cd_ssxl t' ;            --要求必须包含rownum字段</span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">              </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">-select * from (select rownum rn , t.* from  (select  t.* from student t) t )where rn between '2' and '3'</span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">              v_sql :</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">select id,name,sex,address,postcode,birthday from (select rownum rn , t.* from  (</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"> </span><span style="COLOR: #808080">||</span><span style="COLOR: #000000"> sqlstr </span><span style="COLOR: #808080">||</span><span style="COLOR: #000000"> </span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">) t order by </span><span style="COLOR: #ff0000">'</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000"> Pordby </span><span style="COLOR: #808080">||</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">) where rn between </span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"> </span><span style="COLOR: #808080">||</span><span style="COLOR: #000000"> v_Plow </span><span style="COLOR: #808080">||</span><span style="COLOR: #000000"> </span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000"> and </span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"> </span><span style="COLOR: #808080">||</span><span style="COLOR: #000000"> v_Phei ;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>              </span><span style="COLOR: #0000ff">open</span><span style="COLOR: #000000"> rc </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000"> v_sql;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>            </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> rc;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>    </span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000"> getforpage;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">Procedure</span><span style="COLOR: #000000"> getforpagep( <br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>    Pcount out </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,               </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">q回分页L</span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">    return_list out myrctype,<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>    Pindex </span><span style="COLOR: #808080">in</span><span style="COLOR: #000000"> </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,                </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">分页索引   </span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">    Psize </span><span style="COLOR: #808080">in</span><span style="COLOR: #000000"> </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">,               </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">面大小</span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">    Pordby  </span><span style="COLOR: #808080">in</span><span style="COLOR: #000000"> </span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar</span><span style="COLOR: #000000">               </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">排序字段</span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">  )</span><span style="COLOR: #0000ff">as</span><span style="COLOR: #000000"> <br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>          rc myrctype; </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">定义ref cursor变量</span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">          sqlstr </span><span style="FONT-WEIGHT: bold; COLOR: #000000">varchar2</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">500</span><span style="COLOR: #000000">);<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>          v_sql </span><span style="FONT-WEIGHT: bold; COLOR: #000000">VARCHAR2</span><span style="COLOR: #000000">(</span><span style="FONT-WEIGHT: bold; COLOR: #800000">1000</span><span style="COLOR: #000000">);<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>          v_count </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">;  <br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>          v_Plow </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>          v_Phei </span><span style="FONT-WEIGHT: bold; COLOR: #000000">number</span><span style="COLOR: #000000">;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>   <br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>        </span><span style="COLOR: #0000ff">begin</span><span style="COLOR: #000000"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>            sqlstr :</span><span style="COLOR: #808080">=</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">select id,name,sex,address,postcode,birthday from student</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>              </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">----------------------------------------------------------取分|L</span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">              v_sql :</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">select count(*) from (</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"> </span><span style="COLOR: #808080">||</span><span style="COLOR: #000000"> sqlstr </span><span style="COLOR: #808080">||</span><span style="COLOR: #000000"> </span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">)</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000">;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>              </span><span style="COLOR: #0000ff">execute</span><span style="COLOR: #000000"> immediate v_sql </span><span style="COLOR: #0000ff">into</span><span style="COLOR: #000000"> v_count;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>              Pcount :</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000"> ceil(v_count</span><span style="COLOR: #808080">/</span><span style="COLOR: #000000">Psize);<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>              </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">----------------------------------------------------------昄L内?/span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">              v_Phei :</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000"> Pindex </span><span style="COLOR: #808080">*</span><span style="COLOR: #000000"> Psize </span><span style="COLOR: #808080">+</span><span style="COLOR: #000000"> Psize;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>              v_Plow :</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000"> v_Phei </span><span style="COLOR: #808080">-</span><span style="COLOR: #000000"> Psize </span><span style="COLOR: #808080">+</span><span style="COLOR: #000000"> </span><span style="FONT-WEIGHT: bold; COLOR: #800000">1</span><span style="COLOR: #000000">;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>              </span><span style="COLOR: #008080">--</span><span style="COLOR: #008080">Psql := 'select rownum rn,t.* from cd_ssxl t' ;            --要求必须包含rownum字段</span><span style="COLOR: #008080"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">              <br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>              v_sql :</span><span style="COLOR: #808080">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">select id,name,sex,address,postcode,birthday from (select rownum rn , t.* from  (</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"> </span><span style="COLOR: #808080">||</span><span style="COLOR: #000000"> sqlstr </span><span style="COLOR: #808080">||</span><span style="COLOR: #000000"> </span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000">) t order by </span><span style="COLOR: #ff0000">'</span><span style="COLOR: #808080">||</span><span style="COLOR: #000000"> Pordby </span><span style="COLOR: #808080">||</span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000"> ) where rn between </span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"> </span><span style="COLOR: #808080">||</span><span style="COLOR: #000000"> v_Plow </span><span style="COLOR: #808080">||</span><span style="COLOR: #000000"> </span><span style="COLOR: #ff0000">'</span><span style="COLOR: #ff0000"> and </span><span style="COLOR: #ff0000">'</span><span style="COLOR: #000000"> </span><span style="COLOR: #808080">||</span><span style="COLOR: #000000"> v_Phei ;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>              </span><span style="COLOR: #0000ff">open</span><span style="COLOR: #000000"> return_list </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000"> v_sql;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top>      </span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000"> getforpagep;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">end</span><span style="COLOR: #000000"> pkg_test;<br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #808080">/</span><span style="COLOR: #000000"><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.tkk7.com/Images/OutliningIndicators/None.gif" align=top></span></div> <img src ="http://www.tkk7.com/bnlovebn/aggbug/118092.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/bnlovebn/" target="_blank">重归本垒QBingQ?/a> 2007-05-17 14:43 <a href="http://www.tkk7.com/bnlovebn/archive/2007/05/17/118092.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>分页的通用存储q程http://www.tkk7.com/bnlovebn/archive/2007/05/17/118042.html重归本垒QBingQ?/dc:creator>重归本垒QBingQ?/author>Thu, 17 May 2007 03:58:00 GMThttp://www.tkk7.com/bnlovebn/archive/2007/05/17/118042.htmlhttp://www.tkk7.com/bnlovebn/comments/118042.htmlhttp://www.tkk7.com/bnlovebn/archive/2007/05/17/118042.html#Feedback0http://www.tkk7.com/bnlovebn/comments/commentRss/118042.htmlhttp://www.tkk7.com/bnlovebn/services/trackbacks/118042.html 

create or replace package DotNet is

  
-- Author  : good_hy
  -- Created : 2004-12-13 13:30:30
  -- Purpose : 
  
  TYPE type_cur 
IS REF CURSOR;     --定义游标变量用于q回记录?/span>
    
  
PROCEDURE DotNetPagination(      
  Pindex 
in number,                --分页索引   
  Psql in varchar2,                --产生dataset的sql语句
  Psize in number,                 --面大小
  Pcount out number,               --q回分页L
  v_cur out type_cur               --q回当前|据记?/span>
  );  
  
  
procedure DotNetPageRecordsCount(
  Psqlcount 
in varchar2,           --产生dataset的sql语句                           
  Prcount   out number             --q回记录L
  );
  
end DotNot;

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

create or replace package body DotNet is

--***************************************************************************************

PROCEDURE DotNetPagination(
  Pindex 
in number,
  Psql 
in varchar2
  Psize 
in number,  
  Pcount out 
number,
  v_cur out type_cur
)
AS

  v_sql 
VARCHAR2(1000);
  v_count 
number;  
  v_Plow 
number;
  v_Phei 
number;
Begin
  
------------------------------------------------------------取分|L
  v_sql := 'select count(*) from (' || Psql || ')';
  
execute immediate v_sql into v_count;
  Pcount :
= ceil(v_count/Psize);
  
------------------------------------------------------------昄L内?/span>
  v_Phei := Pindex * Psize + Psize;
  v_Plow :
= v_Phei - Psize + 1;
  
--Psql := 'select rownum rn,t.* from cd_ssxl t' ;            --要求必须包含rownum字段
  --v_sql := 'select  *  from (select rownum rn , t.* from  (' || sqlstr || ') t) where rn between ' || v_Plow || ' and ' || v_Phei ;
      v_sql :
= 'select * from (' || Psql || ') where rn between ' || v_Plow || ' and ' || v_Phei ;

  
open v_cur for v_sql;
  
End DotNetPagination;

--**************************************************************************************

procedure DotNetPageRecordsCount(
  Psqlcount 
in varchar2,
  Prcount   out 
number
  )
  
as
  
   v_sql 
varchar2(1000);
   v_prcount 
number;
   
  
begin
  
   v_sql :
= 'select count(*) from (' || Psqlcount || ')';
   
execute immediate v_sql into v_prcount;
   Prcount :
= v_prcount;                  --q回记录L                                                      
   
  
end DotNetPageRecordsCount;
  
--**************************************************************************************

end DotNot;


]]>
java调用oracle Package 的Function&Procedurehttp://www.tkk7.com/bnlovebn/archive/2007/05/17/118035.html重归本垒QBingQ?/dc:creator>重归本垒QBingQ?/author>Thu, 17 May 2007 03:48:00 GMThttp://www.tkk7.com/bnlovebn/archive/2007/05/17/118035.htmlhttp://www.tkk7.com/bnlovebn/comments/118035.htmlhttp://www.tkk7.com/bnlovebn/archive/2007/05/17/118035.html#Feedback0http://www.tkk7.com/bnlovebn/comments/commentRss/118035.htmlhttp://www.tkk7.com/bnlovebn/services/trackbacks/118035.html 

CREATE OR REPLACE PACKAGE SCOTT.pkg_test as
/* 定义ref cursorcd
不加returncdQؓ(f)q型,允许动态sql查询Q?br>否则为强cdQ无法用动态sql查询;
*/

type myrctype 
is ref cursor

--函数x
function get(intID numberreturn myrctype;
Procedure getstudent( 
        intID 
number,
       return_list out myrctype 
  );
end pkg_test;

==============================================

CREATE OR REPLACE PACKAGE BODY SCOTT.pkg_test as
--函数?/span>
    function get(intID numberreturn myrctype is
        rc myrctype; 
--定义ref cursor变量
        sqlstr varchar2(500);
        
begin
            
if intID=0 then
                
--静态测试,直接用select语句直接q回l果
                open rc for select id,name,sex,address,postcode,birthday from student;
            
else
                
--动态sql赋|?w_id来申明该变量从外部获?/span>
                sqlstr :='select id,name,sex,address,postcode,birthday from student where id=:w_id';
                
--动态测试,用sqlstr字符串返回结果,用using关键词传递参?/span>
                open rc for sqlstr using intid;
            
end if;

        
return rc;
    
end get;
    
  
Procedure getstudent( 
         intID 
number,
       return_list out myrctype 
  )
as 
   
   
begin 
       
open return_list
       
for 
        
select id,name,sex,address,postcode,birthday from student;
  
end getstudent; 


end pkg_test;
/


 

        try {
            conn.setAutoCommit(
false);
            CallableStatement proc 
= conn
                    .prepareCall(
"{call  pkg_test.getstudent(?,?)}");
            proc.setInt(
11);
            proc.registerOutParameter(
2, OracleTypes.CURSOR);
            proc.execute();
            ResultSet rs 
= (ResultSet) proc.getObject(2);
            
while (rs.next()) {
                System.out.println(rs.getString(
2));
            }

        }
 catch (SQLException e) {
            
// TODO 自动生成 catch ?/span>
            e.printStackTrace();
        }

        
try {
            conn.setAutoCommit(
false);
            CallableStatement proc 
= conn
                    .prepareCall(
"{call ? := pkg_test.get(?)}");
            proc.setInt(
20);
            proc.registerOutParameter(
1, OracleTypes.CURSOR);
            proc.execute();
            ResultSet rs 
= (ResultSet) proc.getObject(1);
            
while (rs.next()) {
                System.out.println(rs.getString(
2));
            }

        }
 catch (SQLException e) {
            
// TODO 自动生成 catch ?/span>
            e.printStackTrace();
        }


 



]]>
关于oracle中用存储q程q回动态记录集的学?/title><link>http://www.tkk7.com/bnlovebn/archive/2007/05/17/117980.html</link><dc:creator>重归本垒QBingQ?/dc:creator><author>重归本垒QBingQ?/author><pubDate>Thu, 17 May 2007 01:42:00 GMT</pubDate><guid>http://www.tkk7.com/bnlovebn/archive/2007/05/17/117980.html</guid><wfw:comment>http://www.tkk7.com/bnlovebn/comments/117980.html</wfw:comment><comments>http://www.tkk7.com/bnlovebn/archive/2007/05/17/117980.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/bnlovebn/comments/commentRss/117980.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/bnlovebn/services/trackbacks/117980.html</trackback:ping><description><![CDATA[<font style="FONT-FAMILY: Tahoma" face=Verdana>试q程Q?br>1、徏立测试表<br>CREATE TABLE student<br>(<br>id NUMBER,<br>name VARCHAR2(30),<br>sex VARCHAR2(10),<br>address VARCHAR2(100),<br>postcode VARCHAR2(10),<br>birthday DATE,<br>photo LONG RAW<br>)<br>/<br><br>2、徏立带ref cursor定义的包和包体及(qing)函数Q?br>CREATE OR REPLACE<br>package pkg_test as<br>/* 定义ref cursorcd<br>不加returncdQؓ(f)q型,允许动态sql查询Q?br>否则为强cdQ无法用动态sql查询;<br>*/<br>type myrctype is ref cursor; <br><br>--函数x<br>function get(intID number) return myrctype;<br>end pkg_test;<br>/<br><br>CREATE OR REPLACE<br>package body pkg_test as<br>--函数?br>function get(intID number) return myrctype is<br>rc myrctype; --定义ref cursor变量<br>sqlstr varchar2(500);<br>begin<br>if intID=0 then<br>--静态测试,直接用select语句直接q回l果<br>open rc for select id,name,sex,address,postcode,birthday from student;<br>else<br>--动态sql赋|?w_id来申明该变量从外部获?br>sqlstr :='select id,name,sex,address,postcode,birthday from student where id=:w_id';<br>--动态测试,用sqlstr字符串返回结果,用using关键词传递参?br>open rc for sqlstr using intid;<br>end if;<br><br>return rc;<br>end get;<br><br>end pkg_test;<br>/<br><br>3、用pl/sql块进行测试:(x)<br>declare<br>w_rc pkg_test.myrctype; --定义ref cursor型变?br><br>--定义临时变量Q用于显C结?br>w_id student.id%type;<br>w_name student.name%type;<br>w_sex student.sex%type;<br>w_address student.address%type;<br>w_postcode student.postcode%type;<br>w_birthday student.birthday%type;<br><br>begin<br>--调用函数Q获得记录集<br>w_rc := pkg_test.get(1);<br><br>--fetchl果q显C?br>fetch w_rc into w_id,w_name,w_sex,w_address,w_postcode,w_birthday;<br>dbms_output.put_line(w_name);/*此处的put_line表示输出一行在屏幕上显C,假如惌出姓名和性别{,可以q样写dbms.output.putline(w_name||w_sex||w_address),而这样写dbms.output.putline(w_name||chr(10)||w_sex)则表C可以换行?/<br>end;<br><br>4、测试结果:(x)<br>通过?br><br>在上q的online document中有相当多的内容Q包括怎样在pro*c传递动态参数给存储q程、ref cusor的用限制、open cursor for?中不同方法等{?/font><br><span style="FONT-SIZE: 8pt">转:(x)</span><a ><span style="FONT-SIZE: 8pt">http://hetingonion.spaces.live.com/blog/cns!DA3BAE0FAC0FE44F!115.entry</span></a> <br><br> <img src ="http://www.tkk7.com/bnlovebn/aggbug/117980.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/bnlovebn/" target="_blank">重归本垒QBingQ?/a> 2007-05-17 09:42 <a href="http://www.tkk7.com/bnlovebn/archive/2007/05/17/117980.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>orcale数据分页提取?/title><link>http://www.tkk7.com/bnlovebn/archive/2006/12/20/88983.html</link><dc:creator>重归本垒QBingQ?/dc:creator><author>重归本垒QBingQ?/author><pubDate>Wed, 20 Dec 2006 02:29:00 GMT</pubDate><guid>http://www.tkk7.com/bnlovebn/archive/2006/12/20/88983.html</guid><wfw:comment>http://www.tkk7.com/bnlovebn/comments/88983.html</wfw:comment><comments>http://www.tkk7.com/bnlovebn/archive/2006/12/20/88983.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/bnlovebn/comments/commentRss/88983.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/bnlovebn/services/trackbacks/88983.html</trackback:ping><description><![CDATA[ <strong> <font color="#ff0000">Ҏ(gu)一:</font> </strong> <p>select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段</p> <p>10 = 每页记录?/p> <p>20 = (当前?+ 1) * 每页记录?/p> <p>以上语句卛_以实现分,但是最后取出的l果排序是升序,如果需要结果集为降序(例如旉Q,则有两种Ҏ(gu)可以处理</p> <p>1.使用以下语句Q但效率可能要降低一?/p> <p>select * from 表名 b, (select top 10 主键字段,排序字段 from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a order by 排序字段 ) c where b.主键字段 = c.主键字段 order by c.排序字段 desc </p> <p>2.在ado里处?记录集游标Ud最后,然后前移 </p> <p>''以下为asp范例 </p> <p>set rsTemp = Server.CreateObject("adodb.recordset") </p> <p>rsTemp.Open 语句,conn,1,1 </p> <p>rsTemp.MoveLast </p> <p>for i = 1 to rsTemp.RecordCount</p> <blockquote dir="ltr" style="MARGIN-RIGHT: 0px"> <p> '取?... </p> <p>rsTemp.MovePrevious </p> </blockquote> <p>next </p> <p> </p> <p>l测试,以上分页Ҏ(gu)比用(f)时表分页速度q要快,q且单易?</p> <p> <font color="#ff0000"> <strong>Ҏ(gu)二:(x)</strong> </font> </p> <p> <font face="宋体">大数据量下的分页</font> </p> <p> <font face="宋体">    对于非常大的数据模型而言Q分|索时Q每ơ都加蝲整个数据源非常浪贏V通常的选择是检索页面大的块区的数据,而非索所有的数据Q然后单步执行当前行?/font> </p> <p> <font face="宋体"> <font face="宋体">    本文演示ASP.net的DataGrid和Sql Server 实现大数据量下的分页Qؓ(f)了便于实现演C,数据表采用了Northwind数据库的Orders表(830条记录)?/font> </font> </p> <p> <font face="宋体">    如果数据表中有唯一的自增烦引,q且q个字段没有出现断号现象。检索页面大的块区数据非常简单了。通过单的Sql语句可以实现这个功能:(x)</font> </p> <p> </p> <style type="text/css"><![CDATA[td.code { padding:0,10,0,10; border-style:solid; border-width:1; border-bottom:0; border-top:0; border-right:0; border-color:cccccc; background-color:ffffee } ]]></style> <table id="Table1" cellspacing="0" cellpadding="0" width="95%"> <tbody> <tr> <td class="code" colspan="4"> <pre class="code"> select * from orders where orderid between 10248 and 10253</pre> </td> </tr> </tbody> </table> <p> <font face="宋体">    其中Q开始编号ؓ(f)Q?font face="宋体">(CurrentPageIndex - 1) * PageSize  l束~号为:(x)<font face="宋体">CurrentPageIndex * PageSize</font></font></font> </p> <p> <font face="宋体">    当然Q如果这个字D|号不是很严重Q而且允许不是很严格的按照每页条数分页Q这L(fng)Ҏ(gu)也是可以用的?/font> </p> <p> <font face="宋体">    如果q个字段断号Q或者需要按照其他条件排序分,p复杂些了。首先要获得q个面需要显C的~号Q然后再按照q个~号获得需要的块区数据。根据编可得块区数据很单。不q用下面方式获得数据排序q不是按照指定的id列表序Q这时候还要附加order by 命o(h)?</font> </p> <p> </p> <table id="Table2" cellspacing="0" cellpadding="0" width="95%"> <tbody> <tr> <td class="code" colspan="4"> <pre class="code">select * from orders where orderid in (10248,10249,10250,10251,10252,10253) order by orderid desc</pre> </td> </tr> </tbody> </table> <p> <font face="宋体">    获得q个面需要显C的~号列表复杂多了,而且有多U方案:(x)</font> </p> <p> <font face="宋体">Ҏ(gu)一Q维护一个表Q这个表记录需要显C的q些~号排序序。(q个表可以是临时表,也可以是物理表)。下面演CZ利用一个全局临时表。这个全局临时表记录需要显C的~号。注意排序,q里的order by 是需要显C的排序序?/font> </p> <p> </p> <table id="Table3" cellspacing="0" cellpadding="0" width="95%"> <tbody> <tr> <td class="code" colspan="4"> <pre class="code">create table ##temptable(iid int IDENTITY (1, 1) NOT NULL,mainid int NOT NULL)insert ##temptable(mainid) select OrderID from orders order by OrderID descselect * from ##temptabledrop table ##temptable -- 实际执行时候,删除全部临时表当然不再这里执行?/pre> </td> </tr> </tbody> </table> <p> <font face="宋体">q个临时表存在,获得指定分页的分块数据就很简单了。看下面代码Q?/font> </p> <p> </p> <table id="Table4" cellspacing="0" cellpadding="0" width="95%"> <tbody> <tr> <td class="code" colspan="4"> <pre class="code">create table ##temptable(iid int IDENTITY (1, 1) NOT NULL,mainid int NOT NULL)insert ##temptable(mainid) select OrderID from orders order by OrderID descdeclare @PageSize int,@CurrPage int,@strSQL varchar(2000),@IDStr varchar(1000)select @PageSize = 30select @CurrPage = 2select @IDStr = ''select @IDStr = @IDStr + ltrim(rtrim(str(MainID))) + ',' from ##temptable where iid between ((@CurrPage-1)*@PageSize+1) and @CurrPage*@PageSizeif @IDStr <> '' begin select @IDStr = left(@IDStr,len(@IDStr)-1)endselect @strSQL = 'select * from orders where OrderID in ('+@IDStr+') order by OrderID desc 'exec(@strSQL)drop table ##temptable</pre> </td> </tr> </tbody> </table> <p> <font face="宋体">注意Q实际用这个方案的时候,q要考虑何时更新q个全局临时表,一般是攑ֈ计划d中,定时更新q个汇总表?/font> </p> <p> <font face="宋体">Ҏ(gu)二:(x)每次都去查询Q每ơ获得最新的~号序。由于这时候不存在q个临时表,书写获得需要显C页面的~号的字W串需要点技巧,看下面的代码Q?/font> <font face="宋体">ASP.net ?DataGrid 提供了用这U分区的数据的方法?/font> <font face="宋体">DataGrid 通过 AllowCustomPaging ?VirtualItemCount 属性支持块区操作。如?AllowCustomPaging ?trueQ则 DataGrid 不会(x)Ҏ(gu) CurrentPageIndex 计算数据模型中的起始昄位置。DataGrid 显C数据模型中的所有数据,而页D栏将当前位置报告?(VirtualItemCount+PageSize-1)/PageSize ?CurrentPageIndex c下面的CZ说明此功能?/font> </p> <p> </p> <table id="Table5" cellspacing="0" cellpadding="0" width="95%"> <tbody> <tr> <td class="code" colspan="4"> <pre class="code">declare @PageSize int,@CurrPage int,@topnum int,@previous intselect @PageSize = 30select @CurrPage = 2select @topnum = @CurrPage * @PageSizeselect @previous = (@CurrPage - 1) * @PageSizedeclare @i int,@IDStr nvarchar(500),@strSQL nvarchar(1000)select @i = 0select @strSQL = N''select @strSQL = @strSQL + N' select top '+str(@topnum)+ ' @i = @i + 1 'select @strSQL = @strSQL + N', @IdStr = 'select @strSQL = @strSQL + N'case when @i > '+str(@previous)+' then @IdStr + ltrim(rtrim(str(OrderID))) + '','' 'select @strSQL = @strSQL + N'else N''''end 'select @strSQL = @strSQL + N'from Orders 'select @strSQL = ltrim(rtrim(@strSQL)) + N' order by OrderID desc 'Select @IdStr = N''exec sp_executesql @strSQL,N'@i int,@IdStr varchar(500) output',@i,@IdStr outputif len(rtrim(ltrim(@IdStr))) > 0begin select @IdStr = left(@IdStr,len(@IdStr)-1)endselect @strSQL = 'select * from orders where OrderID in ('+@IDStr+')'exec(@strSQL)</pre> </td> </tr> </tbody> </table> <p> </p> <p> </p> <table id="Table6" cellspacing="0" cellpadding="0" width="95%"> <tbody> <tr> <td class="code" colspan="4"> <pre class="code"> protected void BindDataGrid(int currpage) { string strConn = "Data Source=(local);Integrated Security=SSPI;database=Northwind"; // L(fng)?机器?ASPNET 用户可以讉KNorthwind数据? SqlCommand cmd = new SqlCommand(); SqlConnection conn = new SqlConnection(strConn); SqlParameter[] parms = new SqlParameter[] { new SqlParameter("@PageSize",SqlDbType.Int), new SqlParameter("@CurrPage",SqlDbType.Int), new SqlParameter("@SearchSql",SqlDbType.NVarChar,128), new SqlParameter("@Count",SqlDbType.Int), }; parms[0].Value = DataGrid1.PageSize; parms[1].Value = (currpage+1); // 数据库的分页法W一|1 DataGrid的第一|0 parms[2].Value = DBNull.Value; parms[3].Direction = ParameterDirection.Output; parms[3].Value = DBNull.Value; DataSet DS = new DataSet(); try { if (conn.State != ConnectionState.Open) conn.Open(); cmd.Connection = conn; cmd.CommandText = "Selected_Page_List"; cmd.CommandType = CommandType.StoredProcedure; if (parms != null) { foreach (SqlParameter parm in parms) cmd.Parameters.Add(parm); } SqlDataAdapter DA = new SqlDataAdapter(cmd); DA.Fill(DS); int aa = Convert.ToInt32(parms[3].Value.ToString()); cmd.Parameters.Clear(); if (currpage == 0) { DataGrid1.VirtualItemCount = aa; } DataGrid1.CurrentPageIndex = currpage; DataGrid1.DataSource = DS; DataGrid1.DataBind(); } catch(Exception ewx) { conn.Close(); Response.Write (ewx.Message.ToString()); Response.End(); } } void Page_Load(Object sender, EventArgs E ) { if (!IsPostBack) { BindDataGrid(0); // W一ơ打开q个面Q访问分늚W一? } } void MyDataGrid_Page(Object sender, DataGridPageChangedEventArgs e) { BindDataGrid(e.NewPageIndex); }</pre> </td> </tr> </tbody> </table> <p> <font face="宋体">如果你有更多数据量的表稍加修改,也可以用本演示E序。其下是演示代码下蝲Q演CZ码用的是方案二。用方法看readme.txt文g?/font> </p> <p> <font face="宋体"> <font face="宋体">整个演示代码 <a >下蝲</a></font> </font> </p> <p> <a >http://chs.gotdotnet.com/quickstart/aspplus/samples/webforms/ctrlref/webctrl/datagrid/doc_datagrid.aspx#paging</a> <br />q里演示了利?font face="宋体">DataGrid 的这个功?没有本文中讨论的利用存储q程获得分区数据)。如对DataGrid的这个功能不太熟(zhn),请先看这里?/font></p> <p> <font face="宋体"> </font> </p> <p> </p> <p> <font face="宋体" color="#ff0000"> <strong>Ҏ(gu)?</strong> </font> </p> <font face="宋体"> <p>虽然 DataGrid 控g自己带了一个分处理机Ӟ但它是将W合查询条g的所有记录读入内存,然后q行分页昄的。随着W合条g的记录数目增多,׃(x)出现q行效率问题Q或者至是资源的利用率下降?/p> <p>下面的代码示例都以下面的表结构ؓ(f)准:(x)</p> <p align="center">  </p> <table style="BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1"> <tbody> <tr> <td width="30" bgcolor="#99ccff"> </td> <td width="100" bgcolor="#99ccff">Articles ?/td> <td width="150" bgcolor="#99ccff">SQL Server cd</td> <td width="150" bgcolor="#99ccff">Oracle cd</td> </tr> <tr> <td>PK</td> <td bgcolor="#dfefff">Id</td> <td>int (自增)</td> <td>number(9) (插入时在当前最大g?)</td> </tr> <tr> <td> </td> <td bgcolor="#dfefff">Author</td> <td>nvarchar(10)</td> <td>nvarchar2(10)</td> </tr> <tr> <td> </td> <td bgcolor="#dfefff">Title</td> <td>nvarchar(50)</td> <td>nvarchar2(50)</td> </tr> <tr> <td> </td> <td bgcolor="#dfefff">PubTime</td> <td>datetime</td> <td>date</td> </tr> </tbody> </table> <p>SQL Server / Access {微软品中Q我们通常的自定义分页有两U思\Q?/p> <p>一U是?ASP.NET Forum Z表的、“(f)时表”方法:(x)卛_存储q程中徏立一个(f)时表Q该临时表包含一个序号字D(1Q?Q?Q?...Q以?qing)表的主键(其他能够唯一定一行记录的字段也是可以的)字段。存储过E可能如下:(x)<font color="#0000ff">Q编?SS1Q?/font></p> <div id="fbl9dth" class="pbcode">CREATE Procedure GetAllArticles_Paged<br />(<br />     @PageIndex int,<br />     @PageSize int,<br />     @TotalRecords out int,<br />     @TotalPages out int<br />)<br />AS<br /><br />DECLARE @PageLowerBound int<br />DECLARE @PageUpperBound int<br /><br />-- Set the page bounds<br />SET @PageLowerBound = @PageSize * @PageIndex<br />SET @PageUpperBound = @PageLowerBound + @PageSize + 1<br /><br />-- Create a temp table to store the select results<br />CREATE TABLE #tmp<br />(<br />     RecNo int IDENTITY (1, 1) NOT NULL,<br />     ArticleID int<br />)<br /><br />INSERT INTO #tmp<br />     SELECT [ID]<br />     FROM Articles<br />     ORDER BY PubTime DESC<br /><br />SELECT A.*<br />FROM Articles A (nolock), #tmp T<br />WHERE A.ID = T.ArticleID AND<br />     T.RecNo > @PageLowerBound AND<br />     T.RecNo < @PageUpperBound<br />ORDER BY T.RecNo<br /><br />GO </div> <p>另一U可能更适合E序中“拼凑?SQL 语句Q用两次 TOP 命o(h)取得我们所要的分页数据Q例如:(x)<font color="#0000ff">Q编?SS2Q?/font></p> <div id="fbnh7bb" class="pbcode">SELECT * FROM<br />     (<br />     SELECT TOP(<em><font color="#0000ff">PageSize</font></em>) * FROM<br />     (<br />          SELECT TOP (<font color="#0000ff"><em>PageSize</em></font> * <font color="#0000ff"><em>PageIndex</em></font>) *<br />          FROM Articles<br />          ORDER BY PubTime DESC<br />     )<br />     ORDER BY PubTime ASC<br />)<br />ORDER BY PubTime DESC </div> <p>q个的想法就是“掐头去䏀,q有不少分页的方法,q里׃一一列出了?/p> <p>对于 Oracle 数据库,有几处不同严重妨了上面几个Ҏ(gu)的实施,比如QOracle 不支?TOP 关键字:(x)不过q个好像q不十分严重Q因为它提供?rownum q个隐式游标Q可以实C TOP cM的功能,如:(x)</p> <div id="1hnfbrt" class="pbcode">SELECT TOP 10 ... FROM WHERE ... </div> <p>要写?/p> <div id="tfbtxll" class="pbcode">SELECT ... FROM ... WHERE ... AND rownum <= 10 </div> <p>rownum 是记录序P1Q?Q?...Q,但有一个比较麻烦的事情是:(x)如果 SQL 语句中有 ORDER BY ... 排序的时候,rownum 居然是先“标号”后排序Q这Pq个序号如果不加处理是不合乎使用需求的?/p> <p>至于临时表,Oracle 的(f)时表?SQL Server 的有很大不同Q我q没搞懂q个东西Q就不妄加揣了?/p> <p>国内|站中介l?Oracle 分页的资料很,我找C一个国外站点(www.faqts.comQ的<a target="_blank"><font color="#000080">一?FAQ</font></a>Q根据这文章的介绍Q可以如下分:(x)<font color="#0000ff">Q编?Ora1Q?/font></p> <div id="ftlbnfn" class="pbcode">SELECT * FROM<br />     (<br />     SELECT A.*, rownum r<br />     FROM<br />          (<br /><font color="#0000ff">          SELECT *<br />          FROM Articles<br />          ORDER BY PubTime DESC</font><br />          ) A<br />     WHERE rownum <= PageUpperBound<br />     ) B<br />WHERE r > PageLowerBound; </div> <p>其中蓝色部分可以改ؓ(f)L的、需要的 SQL SELECT 语句Q这点倒是挺方便的?/p> <p> <font color="#ff0000"> <strong>Ҏ(gu)?</strong> </font> </p> <p>今天H然发现QOracle原来可以q样实现分页功能Q?br /></p> <p>select * from (select rownum rdd,field1,field2 from t_table where rownum<=400) where  rdd>200<br /></p> <p>上述语句实现了从W?01条记录开始处?00条记?/p> </font> <img src ="http://www.tkk7.com/bnlovebn/aggbug/88983.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/bnlovebn/" target="_blank">重归本垒QBingQ?/a> 2006-12-20 10:29 <a href="http://www.tkk7.com/bnlovebn/archive/2006/12/20/88983.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装orcale9i客户端时出问题:(x)加蝲数据库时出错Q?/title><link>http://www.tkk7.com/bnlovebn/archive/2006/12/01/84781.html</link><dc:creator>重归本垒QBingQ?/dc:creator><author>重归本垒QBingQ?/author><pubDate>Fri, 01 Dec 2006 03:28:00 GMT</pubDate><guid>http://www.tkk7.com/bnlovebn/archive/2006/12/01/84781.html</guid><wfw:comment>http://www.tkk7.com/bnlovebn/comments/84781.html</wfw:comment><comments>http://www.tkk7.com/bnlovebn/archive/2006/12/01/84781.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/bnlovebn/comments/commentRss/84781.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/bnlovebn/services/trackbacks/84781.html</trackback:ping><description><![CDATA[安装orcale9i客户端时出问题:(x)加蝲数据库时出错Q?br />原来是在安装文g的\径有中文名,改了Q就通过了?img src ="http://www.tkk7.com/bnlovebn/aggbug/84781.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/bnlovebn/" target="_blank">重归本垒QBingQ?/a> 2006-12-01 11:28 <a href="http://www.tkk7.com/bnlovebn/archive/2006/12/01/84781.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jdbc 日期旉相关的类?/title><link>http://www.tkk7.com/bnlovebn/archive/2006/11/06/79395.html</link><dc:creator>重归本垒QBingQ?/dc:creator><author>重归本垒QBingQ?/author><pubDate>Mon, 06 Nov 2006 06:15:00 GMT</pubDate><guid>http://www.tkk7.com/bnlovebn/archive/2006/11/06/79395.html</guid><wfw:comment>http://www.tkk7.com/bnlovebn/comments/79395.html</wfw:comment><comments>http://www.tkk7.com/bnlovebn/archive/2006/11/06/79395.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/bnlovebn/comments/commentRss/79395.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/bnlovebn/services/trackbacks/79395.html</trackback:ping><description><![CDATA[ <p> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体"> <span lang="EN-US"> </span> </font> </span> </p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  <span lang="EN-US">1、sql.Date</span></font> </span> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  <span lang="EN-US">sql包中的日期类Date是util包中Datecȝ子类Q实际上也是util.Datecȝ子集。它只处理年月日Q而忽略小时和分秒Q用以代表SQL的DATE信息?/span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  <span lang="EN-US">Datecȝ构造方法ؓ(f)Q?/span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  <span lang="EN-US">public Date(int year, int mouth, int day)</span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">其中参数格式?span lang="EN-US">util.Datecȝ构造方法一Pq参Cؓ(f)所需讑֮的年份减?900所得的整数|月参Cؓ(f)0?1Q日参数??1。如1998q??3日所对应创徏日期cȝҎ(gu)调用为:(x)</span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  <span lang="EN-US">Date d=new Date(98,0,23);</span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  <span lang="EN-US">Datec还提供两个与StringcM相{换的Ҏ(gu)Q分别是Q?/span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  <span lang="EN-US">public static Date valueOf(String s)</span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">字W串cd数{换ؓ(f)日期cd象。其?span lang="EN-US">Stringcd数S的格式ؓ(f)“年-?日”,加?997-04-12”?/span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  <span lang="EN-US">public String toString()</span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">日期类对象转换?span lang="EN-US">Stringcd象表C,同样采用“年-?日”的格式?/span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  <span lang="EN-US">2、sql.Time</span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  该类?span lang="EN-US">util.Datecȝ子类Q也是它的一个子集。在Timec里Q只处理时和分U,代表SQL的TIMEcd。它与sql.Date合v来才表示完整的util.DatecM息?/span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  <span lang="EN-US">Timecȝ构造方法ؓ(f)Q?/span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  <span lang="EN-US">public Time(int hour,int minute,int second)</span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">其中时参数gؓ(f)<span lang="EN-US">0?3Q分U参数取值均??9?/span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  ?span lang="EN-US">sql.Date一PTimecM定义了两个与StringcM相{换的函数ValueOf和String。不同的是Stringcd象的格式为“小Ӟ(x)分:(x)U”,如?2Q?6Q?6”?/span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  <span lang="EN-US">3、sql.Timestamp</span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  q个cM?span lang="EN-US">util.Datecȝ子类Q其中除了包含年月日、小时和分秒和信息之外,q加入了U秒信息(nanosecond)Q?U秒?毫微U。Timestampcȝ来代表SQL旉?Timestamp)cd信息?/span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  <span lang="EN-US">Timestampcȝ构造方法ؓ(f)Q?/span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  <span lang="EN-US">public Timestamp(int year, int mouth, int date, int hour, int minute, int second, int nano)其中U秒参数的取g0?99,999,999Q其余各参数同前?/span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  <span lang="EN-US">Timestampcȝ别定义了讄和获得纳U信息的Ҏ(gu)Q分别是</span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  <span lang="EN-US">public getnanos()</span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  获取旉戳的U秒部分</font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  <span lang="EN-US">public void setNanos(int n)</span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  以给定数D|时间戳的纳U部?/font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  <span lang="EN-US">4、sql.Types</span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  <span lang="EN-US">TypescLObjectcȝ直接子类。在q个cM以静态常量的形式定义了可使用的SQL的数值类型。所有这些类型常量都以前~</span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  <span lang="EN-US">public final static int</span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">的Ş式标明是公有静态整敎ͼ且不可改动。具体的cd名和含义如表<span lang="EN-US">11.1所C。其中OTHER用来代表数据库定义的Ҏ(gu)数据Q可以用getObject或setObjectҎ(gu)其映射Z个Java的Object对象?/span></font> </span> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  ?span lang="EN-US">11.1 Types中定义的SQLcd</span></font> </span> </p> <p> </p> <table cellspacing="0" cellpadding="0" width="350" border="1"> <tbody> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BACKGROUND: #006666; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p style="TEXT-ALIGN: center" align="center"> <span style="FONT-SIZE: 9pt; COLOR: #ffff99; FONT-FAMILY: 宋体">cd?/span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BACKGROUND: #006666; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p style="TEXT-ALIGN: center" align="center"> <span style="FONT-SIZE: 9pt; COLOR: #ffff99; FONT-FAMILY: 宋体">含义</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">BIGINT</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">长整型数</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">BINARY</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">二进制数</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">BIT</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">比特?/span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">CHAR</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">字符?/span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">DATE</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">日期?/span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">DECIMAL</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">十进制数</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">DOUBLE</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">双精度数</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">FLOAT</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">点?/span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">INTEGER</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">整数</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">LONGVARBINARY</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">可变长型二进制数</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">LONGVARCHAR</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">可变长型字符</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">NULL</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">I类?/span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">NUMERIC</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">数值型</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">OTHER</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">其他cd</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">REAL</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">实数</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">SMALLINT</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">短整?/span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">TIME</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">旉cd</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">TIMESTAMP</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">旉戳类?/span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">TINYINT</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">微整?/span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">VARBINARY</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">可变二进制数</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">VARCHAR</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">可变字符?/span> </p> </td> </tr> </tbody> </table> <p> <span style="FONT-SIZE: 10.5pt; COLOR: #333399"> <font face="宋体">二?span lang="EN-US">SQL与Java</span></font> </span> </p> <p> <font face="宋体"> <span style="FONT-SIZE: 11pt"> </span> <span style="FONT-SIZE: 9pt"> </span> <span style="FONT-SIZE: 9pt; COLOR: green">׃<span lang="EN-US">SQL数据cd与Java的数据类型不一_(d)因而在使用Javacd的应用程序与使用SQLcd的数据库之间Q需要某U读写类型{换机制。实际上我们前面介绍的ResultSetcȝ“get”系列方法,Statement?qing)其子类的“set“系列方法和registerOutParameterҎ(gu)Q都是这一转换机制的组成部分?/span></span> </font> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  需要进行的d转换包括三种情况Q?/font> </span> </p> <p> <font face="宋体"> <span style="FONT-SIZE: 9pt"> </span> <span style="FONT-SIZE: 9pt; COLOR: green"> W一U情冉|从数据库中读取数值后Q存攑֜<span lang="EN-US">ResultSet对象中的是SQLcd的数据。而调用“get”系列方法时QJDBC才将SQLcd转换为指定的Javacd</span></span> <span style="FONT-SIZE: 9pt">。在一般情形下Q?span lang="EN-US">SQLcd相对应的Javacd如表11-2所C?/span></span> </font> </p> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  ?span lang="EN-US">11.2 SQLcd一般所对应的Javacd</span></font> </span> </p> <p> </p> <table cellspacing="0" cellpadding="0" width="350" border="1"> <tbody> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BACKGROUND: #006666; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p style="TEXT-ALIGN: center" align="center"> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #ffff99; FONT-FAMILY: 宋体">SQL type</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BACKGROUND: #006666; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p style="TEXT-ALIGN: center" align="center"> <span lang="EN-US" style="FONT-SIZE: 9pt; COLOR: #ffff99; FONT-FAMILY: 宋体">Java type</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">CHAR</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">java.lang.String</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">VARCHAR</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">java.lang.String</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">LONGVARCHAR</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">java.lang.String</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">NUMERIC</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">java.lang.Bignum</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">DECIMAL</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">java.lang.Bignum</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">BIT</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">boolean</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">TINYINT</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">byte</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">SMALLINT</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">short</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">INTEGER</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">int</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">BIGINT</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">long</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">REAL</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">float</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">FLOAT</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">double</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">DOUBLE</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">double</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">BINARY</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">byte[]</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">VARBINARY</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">byte[]</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">LONGVARBINARY</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">byte[]</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">DATE</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">java.sql.Date</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">TIME</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">java.sql.Time</span> </p> </td> </tr> <tr> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 107.25pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="143"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">TIMESTAMP</span> </p> </td> <td style="PADDING-RIGHT: 0.75pt; PADDING-LEFT: 0.75pt; BORDER-LEFT-COLOR: #d4d0c8; BORDER-BOTTOM-COLOR: #d4d0c8; PADDING-BOTTOM: 0.75pt; WIDTH: 147.75pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0.75pt; BACKGROUND-COLOR: transparent; BORDER-RIGHT-COLOR: #d4d0c8" width="197"> <p> <span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体">java.sql.Timestamp</span> </p> </td> </tr> </tbody> </table> <p> <span style="FONT-SIZE: 9pt"> <font face="宋体">  当然Q在使用时用户可以指定将<span lang="EN-US">SQLcd转换为某个需要的特定cd而不遵@?1.2。例如在l果集中的某个FLOAT型数|依标准{换应用用getDoubleҎ(gu)获取Q但实际上按用户的不同需求也可以使用getFloatQgetIntQ甚至gefByteҎ(gu)获取Q但只是有可能媄响数值精度?/span></font> </span> </p> <img src ="http://www.tkk7.com/bnlovebn/aggbug/79395.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/bnlovebn/" target="_blank">重归本垒QBingQ?/a> 2006-11-06 14:15 <a href="http://www.tkk7.com/bnlovebn/archive/2006/11/06/79395.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ALTER在不同数据库的用?/title><link>http://www.tkk7.com/bnlovebn/archive/2006/11/06/79339.html</link><dc:creator>重归本垒QBingQ?/dc:creator><author>重归本垒QBingQ?/author><pubDate>Mon, 06 Nov 2006 02:46:00 GMT</pubDate><guid>http://www.tkk7.com/bnlovebn/archive/2006/11/06/79339.html</guid><wfw:comment>http://www.tkk7.com/bnlovebn/comments/79339.html</wfw:comment><comments>http://www.tkk7.com/bnlovebn/archive/2006/11/06/79339.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/bnlovebn/comments/commentRss/79339.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/bnlovebn/services/trackbacks/79339.html</trackback:ping><description><![CDATA[ <span id="nx1vnnz" class="content"> <br />下面是几U不同数据库的升U脚本比?实际上是对不同数据库版本的ALTER命o(h)用法的比?br /><br />U定:[]内的内容可有可无<br /><br />1,修改字段cd[关键?modify&alter]<br /><br /><font color="red">mysql:</font><br /><br />ALTER TABLE 表名 MODIFY [COLUMN] 字段?字段cd定义;<br /><br /><font color="red">sqlserver:</font><br /><br />ALTER TABLE 表名 ALTER COLUMN 字段?字段cd定义;<br />[q里在修改约束的时候需要用C门的关键字CONSTRAINT]<br /><br /><font color="red">oracle:</font><br /><br />ALTER TABLE 表名 MODIFY ( 字段?字段cd定义);<br />[OracleQ修改类型时所改字D늚数据必须为空Q]<br /><br />2,增加和删除字D?br /><br />增加字段<br /><br />ALTER TABLE 表名 ADD 字段?字段cd定义;<br /><br />删除字段<br /><br /><font color="red">mysql:</font><br />ALTER TABLE 表名 DROP[COLUMN] 字段?br /><br /><font color="red">sqlserver:</font><br />ALTER TABLE 表名 DROP COLUMN 字段?br /><br />3,修改列名<br /><br /><font color="red">mysql:</font><br />可以用CHANGE同时修改列名和列cd,如:(x)<br />ALTER TABLE table CHANGE column newcolumn BIT NOT NULL<br />q里column和newcolumn可以相同Q?br />也就是说QCHANGE可以取代MODIFY了,可以用来单纯修改列类型或者列?br /><br /><font color="red">sqlserver:</font><br />暂时只能调用存储q程 <br />EXEC SP_RENAME table.column','newcolumn','COLUMN'<br /><br /><font color="red">oracle:</font><br />?17版本以上支持RENAME了,没有具体试q,9i以上版本比较保险<br />ALTER TABLE table RENAME COLUMN column TO newcolumn; <br /></span> <img src ="http://www.tkk7.com/bnlovebn/aggbug/79339.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/bnlovebn/" target="_blank">重归本垒QBingQ?/a> 2006-11-06 10:46 <a href="http://www.tkk7.com/bnlovebn/archive/2006/11/06/79339.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE 自增序列SEQUENCEhttp://www.tkk7.com/bnlovebn/archive/2006/10/20/76388.html重归本垒QBingQ?/dc:creator>重归本垒QBingQ?/author>Fri, 20 Oct 2006 07:04:00 GMThttp://www.tkk7.com/bnlovebn/archive/2006/10/20/76388.htmlhttp://www.tkk7.com/bnlovebn/comments/76388.htmlhttp://www.tkk7.com/bnlovebn/archive/2006/10/20/76388.html#Feedback0http://www.tkk7.com/bnlovebn/comments/commentRss/76388.htmlhttp://www.tkk7.com/bnlovebn/services/trackbacks/76388.html
在oracle中sequence是所谓的序列P每次取的时候它?x)自动增加,一般用在需要按序列h序的地方?
1、Create Sequence
你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限Q?
CREATE SEQUENCE emp_sequence
INCREMENT BY 1 -- 每次加几?
START WITH 1 -- ?开始计?
NOMAXVALUE -- 不设|最大?
NOCYCLE -- 一直篏加,不@?
CACHE 10;

一旦定义了emp_sequenceQ你可以用CURRVALQNEXTVAL
CURRVAL=q回 sequence的当前?
NEXTVAL=增加sequence的|然后q回 sequence ?
比如Q?
emp_sequence.CURRVAL
emp_sequence.NEXTVAL

可以使用sequence的地方:(x)
- 不包含子查询、snapshot、VIEW?SELECT 语句
- INSERT语句的子查询?
- NSERT语句的VALUES?
- UPDATE ?SET?

可以看如下例子:(x)
INSERT INTO emp VALUES
(empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20);

SELECT empseq.currval FROM DUAL;

但是要注意的是:(x)
- W一ơNEXTVALq回的是初始|随后的NEXTVAL?x)自动增加你定义的INCREMENT BY|然后q回增加后的倹{CURRVAL Lq回当前SEQUENCE的|但是在第一ơNEXTVAL初始化之后才能用CURRVALQ否则会(x)出错。一ơNEXTVAL?x)增加一ơSEQUENCE的|所以如果你在同一个语句里面用多个NEXTVALQ其值就是不一L(fng)。明白?

- 如果指定CACHE|ORACLE可以预先在内存里面攄一些sequenceQ这样存取的快些。cache里面的取完后Qoracle自动再取一l到cache?使用cache或许?x)蟩P 比如数据库突然不正常down掉(shutdown abort),cache中的sequence׃(x)丢失. 所以可以在create sequence的时候用nocache防止q种情况?

2、Alter Sequence
你或者是该sequence的ownerQ或者有ALTER ANY SEQUENCE 权限才能改动sequence. 可以alter除start至以外的所有sequence参数.如果惌改变start|必须 drop sequence ?re-create .
Alter sequence 的例?
ALTER SEQUENCE emp_sequence
INCREMENT BY 10
MAXVALUE 10000
CYCLE -- ?0000后从头开?
NOCACHE ;


影响Sequence的初始化参数Q?
SEQUENCE_CACHE_ENTRIES =讄能同时被cache的sequence数目?

可以很简单的Drop Sequence
DROP SEQUENCE order_seq;

CZSequenceQ?br />
CREATE SEQUENCE SCOTT.DMIFPOSTID 
    START WITH 
261
    INCREMENT BY 
1
    NOMINVALUE
    NOMAXVALUE
    NOCYCLE
    CACHE 
20
    NOORDER


3、如何?br />         W一U方法:(x)一般来说需要新Z个触发器QTRIGGERQ,使得在插入数据之前先q行Sequence生成自增受?br />CZTrigger
CREATE OR REPLACE TRIGGER SCOTT.DMIFATTACH_TRG
BEFORE INSERT 
ON SCOTT.DMIFATTACH
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW 
begin
    select SCOTT.DMIFATTACHID.nextval into :
new.ATTACHID from dual;
  end;

         W二U方法:(x)可以在插入数据时直接调用?br />          insert into table(id,name) values(seq_name.nextval,'名字');

         其它Q对于hibernate来说Q在插入数据之前?x)先q行一ơSequence生成id的,所以这时如果还有触发器QTRIGGERQ,又要再运行一ơSequenceQ于是就?x)发现id是以Qؓ(f)步进增加的。这时把Trigger删除Q步q就为1了?br />         如果使用hibernate则需要在hbm.xml文g中把QD的生成方式设为sequence.
    <id
        name
="postid"
        type
="java.lang.Integer"
        column
="POSTID"
    
>
        
<meta attribute="field-description">
           @hibernate.id
            generator
-class="sequence"
            type
="java.lang.Integer"
            column
="POSTID"


        
</meta>
        
<!--讄id生成方式-->
          
<generator class="sequence">
            
<param name="sequence">SCOTT.DMIFPOSTID</param>
         
</generator>
    
</id>

同时在调用this.getHibernateTemplate().save()Ҏ(gu)时会(x)自动生成Ҏ(gu)sequence把查询到的id号setl这个对象的id.

]]>
վ֩ģ壺 99re8оƷƵ| ѹۿaƬվ| ޳AVƬ߹ۿ| þþƷav٤| η츾AAAAƬѿ| avh˶ڵ | õƵ| ۺС˵þ| ձĻ| Ļþ2017 | ޵һ| ޸Ƶ| av| ˳Ƶۿ | һ߹ۿ| ȫaһëƬ˰| AVպAVһ| wwwƵ| պ˳| Ļ4| ҹav2019| aëƬƵ| ޷Ůһv| ĻĴȫƵ| ޳xxxxxӰ| þѹƵ| þþþAVר| Ʒ99Ʒþ| AVҹƬ| ۲Ƶwwwѹۿ | ۺϾþһ| ƵƷ2| һ߹ۿƵ| žѹۿ嶯4| ѵӰվ| ŷÿѵӰ߹ۿ | AѾƷƵ| 鵺̳Ʒ| ڵɫƵѹۿɫ| һɫþۺ޾Ʒ| ߹ۿѲavƬ|