赛迪网 > IT技术 数据库 > Sybase
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

使用Sybase数据库的现有表实现应用方法

发布时间:2008.06.25 04:44     来源:赛迪网    作者:Alizze

【赛迪网-IT技术报道】关于Sybase ASE中存储过程嵌套调用,特别是主存储过程要使用子存储过程返回的结果集的情况,由于Sybase 中不支持T-SQL 中的行集函数openrowset和opendatasource两种方法,而且,目前版本(Sybase 12.5)不支持用户自定义函数,因此,给引用被调用子存储过程返回的结果集造成了很大的不方便性。这里介绍使用Sybase“现有表”来实现应用方法。

例子:

首先建立一个存储过程p_Test,返回一个结果集

create procedure p_Test

@RCNID char(10)

as

begin

select RCNID,RCNDTE,NODENAM from JK_RCNNODE WHERE RCNID=@RCNID

return

end

再建立一个存储过程,对p_Test存储过程进行嵌套调用,使用p_Test返回的结果集

Create procedure p_Main

as

begin

create existing table almsdb.dbo.tt /*为要调用的存储过程建立现有表*/

(RCNID char(10) null,

RCNDTE char(10) null,

NODENAM varchar(100) null,

_RCNID char(10) null

)

external procedure

at 'local.almsdb.dbo.p_Test '

select * from tt where RCNID='0000011312' /*使用现有表--存储过程返回的记录集*/

drop table tt

return

end

注释:

almsdb.dbo.tt: 数据库名.拥有者.表名(其实是一个视图名称--只读)

local :Sybase ASE 数据库服务器名称(也可以是远程链接数据库服务器名)

建立方法:

sp_addserver 'local', null, '10.232.27.147:4100'

sp_addexternlogin 'local', 'almsdbo', 'almsdbo', 'almsalms'

注意上面两个系统存储过程的执行需要dbo的操作权限,由数据库管理员配制好就可使用。

现有表almsdb.dbo.tt的定义与存储过程返回的结果集相对应,包括数据类型、长度/精确度、小数点后的位数(scale)以及 null/not null 等特征。

现有表almsdb.dbo.tt只能接收存储过程返回的第一个结果集。

/*******************************************/

改进一:

描述:为了能够并行执行,将现有表改为临时现有表almsdb.dbo.tt-->#tt

这样存储过程并行执行时就不会发生并发问题

/*******************************************/

改进二:

描述:

关于存储过程的参数,如何实现包含参数的存储过程。在现有表中使用“_”的列来定义存储过程的参数,这些参数列不会在结果集中出现,但可以查询引用,CIS将通过名为@+列名的参数将搜索自变量传递到存储过程中。

/********************************************/

即将上面p_Main过程更改为:

create existing table #tt

(RCNID char(10) null,

RCNDTE char(10) null,

NODENAM varchar(100) null,

_RCNID char(10) null

)

external procedure

at 'local.almsdb.dbo.p_Test '

select * from #tt where RCNID='0000011312'

drop table #tt

(责任编辑:卢兆林)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· Sybase启动服务快车 打造行业服务新模式 (06-22) · Sybase数据库荣获2008产品服务满意度金奖 (06-22)
· Sybase中不同实现方法间存在的性能差异 (06-13) · Sybase客户中国农业银行喜获"CHP"嘉奖 (06-11)
· 实例讲解Sybase远程磁带备份的具体步骤 (06-05) · 安装Sybase后新建server时遇到的错误现象 (06-05)
· Sybase ASE for Linux安装过程及安全配置 (06-03) · Sybase发布下一代金融业分析平台RAP交易版 (06-02)
· Sybase公司赞助“奥运龙”长城展示活动 (06-02) · Sybase鼎力筹集善款 爱心奉献四川灾区 (05-27)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 黑客病毒现身互联网 个人数据信息受威胁
· ERP实施过程中项目管理失控的几种表现
· 首届赢在软件创富大赛 SOA技术+应用
· 个人理财合规系统方案 方正电子公文系统
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统