楼主: ldxm

Sybase12.5的自定义函数创建问题[急]

[复制链接]
论坛徽章:
114
授权会员
日期:2005-10-30 17:05:332013年新春福章
日期:2013-02-25 14:51:24奔驰
日期:2013-08-01 21:18:36宝马
日期:2013-12-04 21:52:282014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14
11#
发表于 2004-5-27 12:08 | 只看该作者
只能用java 编写 函数

使用道具 举报

回复
论坛徽章:
0
12#
 楼主| 发表于 2004-5-28 16:20 | 只看该作者
并且sybase的版本要在12.0以上才有该功能。BT呀。

使用道具 举报

回复
论坛徽章:
114
授权会员
日期:2005-10-30 17:05:332013年新春福章
日期:2013-02-25 14:51:24奔驰
日期:2013-08-01 21:18:36宝马
日期:2013-12-04 21:52:282014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14
13#
发表于 2004-5-28 23:08 | 只看该作者
不能用procedure 实现吗?

使用道具 举报

回复
论坛徽章:
0
14#
发表于 2004-8-16 16:54 | 只看该作者

各位大虾,求免费的sybase最新版本

我是菜鸟,我现在的sybase数据库版本是11.5,我想升级到比较新的版本,但有没有最新的版本,向各位网友要连接,谢谢!!!!

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
15#
发表于 2004-8-17 13:12 | 只看该作者
我用过12.5也是从Sybase网站下下载的(开发版,并发数有限制的),应该可以开发java存储函数的。
1 首先,要先允许数据库支持JAVA的特性。

  sp_configure “enable java”,1

1> sp_configure "enable java",1

2> go

Parameter Name                 Default     Memory Used Config Value

         Run Value   Unit                 Type

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

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

enable java                              0           0           1

                   0 switch               static



(1 row affected)

Configuration option changed. Since the option is static, Adaptive Server must

be rebooted in order for the change to take effect.

Changing the value of 'enable java' to '1' increases the amount of memory ASE

uses by 6482 K.

(return status = 0)



2 重新启动Sybase数据库。NT下面,可以通过控制面板->管理工具->服务来重启。

3 好了,下面,我们来简单地开发一个JAVA程序,然后看看sybase的T-SQL是如何调用的。

java程序

package sam;



public class HelloWorld

{

public String  Hello()

{

       return "HelloWorld";

}



}

4 编译并且打包上面这个java程序。

javac sam/*.java

jar cf0 sam.jar sam\*.class

5 安装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

6 在Sybase的Transaction-SQL中调用Hello方法

1> select (new sam.HelloWorld())>>Hello()

2> go



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

HelloWorld

我们可以看到,sybase基本采用了类似java语法,因此,java程序员应该很容易使用。

7 下面,我再谈谈第二个特性(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;

      

}



}

8 编译,打包,安装后。现在,我们就可以直接使用这个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



(1 row affected)

使用道具 举报

回复
论坛徽章:
0
16#
发表于 2008-7-24 20:45 | 只看该作者

好人呀

我今天一直在试,怎么样在SYBASE中使用JAVA,可是怎么样都不行,看了这位兄台贴,有点感觉了,可是在操作的时候还是出错,请这位兄台再帮忙说一下:
1、SYBASE版本:
Adaptive Server Enterprise/12.5.4/EBF 13387/P/NT (IX86)/OS 4.0/ase1254/2006/32-bit/OPT/Sat May 20 00:54:28 2006。
2、打开数据库使用JAVA:
c:>isql -S FENGLB -U sa
Password:
1> use IMPS
2> go
1> sp_configure "enable java",1
2> go
Parameter Name                 Default     Memory Used Config Value
         Run Value   Unit                 Type
------------------------------ ----------- ----------- ------------
         ----------- -------------------- ----------
enable java                              0           0           1
                   0 switch               static

(1 row affected)
Configuration option changed. Since the option is static, Adaptive Server must
be rebooted in order for the change to take effect.
Resulting configuration value and memory use have not changed from previous
values: new configuration value 1, previous value 1.
(return status = 0)
1> exit

3、导入JAVA到数据库提示:
Cocuments and SettingsAdministrator>instjava -f "c:        est.jar" -new -j -S FEN
GLB -U sa -P test123 -D IMPS
Server Message: FENGLB - Msg 10734, Level 16, State 1:
Cannot run this command because Java services are not enabled. A user with Syste
m Administrator (SA) role must reconfigure the system to enable Java.

先重启了数据库,还是报上信息,不知道还有什么地方需要注意的,请指教。

使用道具 举报

回复
论坛徽章:
0
17#
发表于 2008-7-24 20:45 | 只看该作者
我的操作系统是XP,难道与这个有关系吗?

使用道具 举报

回复
论坛徽章:
0
18#
发表于 2008-7-24 21:00 | 只看该作者
调用sp_configure "Java Services"
会出现如下信息:
Parameter Name                 Default     Memory Used Config Value Run Value   Unit                 Type      
--------------                 -------     ----------- ------------ ---------   ----                 ----      
enable enterprise java beans             0           0           0            0 switch               dynamic   
enable java                              0           0           1            0 switch               static     
number of java sockets                   0           0          10           10 number               dynamic   
size of global fixed heap              150           0         150          150 memory pages(2k)     dynamic   
size of process object heap           1500           0        3000         3000 memory pages(2k)     dynamic   
size of shared class heap             1536           0        3000         3000 memory pages(2k)     dynamic   

我觉得应该是配置成功了吧,为什么重启数据库执行还是报没有开启JAVA功能,奇怪

使用道具 举报

回复
论坛徽章:
1
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51
19#
发表于 2008-7-25 08:06 | 只看该作者
15版本支持自定义的SQL函数 12好像是不支持的!

使用道具 举报

回复
论坛徽章:
2
设计板块每日发贴之星
日期:2009-01-16 01:01:08ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51
20#
发表于 2008-7-25 09:20 | 只看该作者
你重起数据库服务了吗?

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表