[b]关于常见的一些异常以及处理方法[/b]
1.以下语句用于处理Sybase数据日志堆满的时候
(The transaction log in database EBILLS is almost full.
Your transaction is being suspended until space is made available in the log. )
solution:
use master
go
sp_dboption EBILLS,trunc,true
go
use master
2> go
1> sp_dboption cqweb,"select into/bulkcopy",true
2> go
2.关于syabse的自定义函数步骤
(在SYBASE12.5或者更久以前的版本都是不支持函数,但是有些时候我们又需要一些函数,而不仅仅是过程,这里有可以采用JAVA实现,并且写JAVA肯定比写存储过程要好多了,JAVA处理数据的能力或者是类型,会让SYBASE增不少光彩。以下是网上找到的一篇文章,详细介绍如何在SYBASE中使用JAVA,但我先说明一点,我现在用的是12.5.4这个版本,也提示开启JAVA功能成功,但是去不能够将JAR文件提交到数据库,也许这样与操作系统或者是数据库版本的问题。)
Solution:
1·首先,要先允许数据库支持JAVA的特性。
sp_configure “enable java”,1
2.重新启动Sybase数据库服务
3.编译并且打包上面这个java程序。
javac sam/*.java
jar cf0 sam.jar sam\*.class
4.安装java包到数据库中,用sybase提供的instjava程序,这个程序会随着sybase安装的时候,一起安装的。要说明的是,NT和unix命令名称不一样。unix下是installjava ,Windows NT下是instjava 。
instjava -f "E:\工作目录\Sybase\java\sam.jar" -new -j -S sam -U sa -P -D Northwind
5 在Sybase的Transaction-SQL中调用Hello方法
1> select (new sam.HelloWorld())>>Hello()
2> go
--------------------------------------------------
HelloWorld
我们可以看到,sybase基本采用了类似java语法,因此,java程序员应该很容易使用。
8 下面,我再谈谈第二个特性(java对象类型)的开发应用。
package sam;
public class Address implements java.io.Serializable
{
private String varCity;
private String varCountry;
private String varZip;
private String varHome;
public Address(String mCity,String mCountry,String mZip,String mHome)
{
varCity=mCity;
varCountry=mCountry;
varZip=mZip ;
varHome=mHome;
}
public String City()
{
return varCity;
}
public String Country()
{
return varCountry;
}
public String HomeAddress()
{
return varHome;
}
public String Zip()
{
return varZip;
}
public void ModifyAddress(String mCity,String mCountry,String mZip,String mHome)
{
varCity=mCity;
varCountry=mCountry;
varZip=mZip ;
varHome=mHome;
}
}
9 编译,打包,安装后。现在,我们就可以直接使用这个java对象类型。
建一个表,数据库字段类型是一个java类。
注意:可以作为数据库字段类型的java类,必须implements了java.io.serializable接口。
1> create table emps (
2> empno int,
3> name varchar(30),
4> addr sam.Address default new sam.Address
5> ('Not known', '','','')
6> )
7> go
1> alter table emps add constraint pk_emps primary key(empno)
2> go
操作并使用java类型的字段。
1> insert into emps(empno,name) values(1,'TOM')
2> go
(1 row affected)
1> insert into emps values(2,'BOB',
2> new sam.Address('Shanghai','china','200132','1169,nanjin road'))
3> go
(1 row affected)
1> begin
2> declare @A sam.Address
3> select @A=addr from emps where empno=2
4> select @A>>Country(),@A>>City(),@A>>HomeAddress(),@A>>Zip()
5> end
6> go
--------------------------------------------------
--------------------------------------------------
--------------------------------------------------
--------------------------------------------------
china
Shanghai
1169,nanjin road
200132