创建代理表:
sp_webservices 'add', '<wsdl_uri>' [, <sds_name>]
[, '<method_name>=<proxy_table>
[,<method_name>=<proxy_table> ]* ' ]
显示 sp_webservices 的用法信息:
sp_webservices help[, ’<option>’]
列出映射到 WSDL 文件的代理表:
sp_webservices 'list'[, '<wsdl_uri>'][, <sds_name>]
修改超时设置:
sp_webservices 'modify', '<wsdl_uri', >'timeout=<time>'
删除映射到 WSDL 文件的代理表:
sp_webservices 'remove', '<wsdl_uri>'[, <sds_name>]
用户定义的 Web 服务的选项:
sp_webservices 'addalias' <alias_name> , <database_name>
sp_webservices 'deploy', ['all' | '<service_name>']
sp_webservices 'dropalias' <alias_name>
sp_webservices 'listudws' [, '<service_name>']
sp_webservices 'listalias'
sp_webservices 'undeploy', ['all' | '<service_name>']
'add', '<wsdl_uri>' [, <sds_name>] [, '<method_name>=<proxy_table>[, <method_name>=<proxy_table> ]* ' ]
用于为 WSDL 文件指定的 Web 方法创建代理表。如果成功使用了 add 选项,将自动调用 list 选项以描述新代理表的模式:
<wsdl_uri> – 是要映射到新代理表的 WSDL 文件的位置。如果指定了此参数,则 Web 服务会确保 syswsdl 表中存在 URI。
<sds_name> – 在 interfaces 或 sql.ini 文件中为 ASE Web 服务引擎指定的名称。缺省值为 ws。如果 sysattributes 表中不存在任何条目,则会产生错误。
<method_name> – 是映射到代理表的 Web 方法的名称。所指定的 <method_name> 必须是在关联的 WSDL 文件中指定的 Web 方法的名称。
<proxy_table> – 是在 <method_name> 中指定的 Web 方法映射到的代理表的名称。
'addalias' <alias_name> , <database_name>
用于创建在用户定义的 Web 服务中表示数据库名称的别名,其中:
<alias_name> –(必需)是指定数据库的别名。
<database_name> –(必需)是指定的别名对应的数据库的名称。
使用别名可以在指定 URL 中表示数据库名称的部分时进行更好的控制。将别名与 create service 命令的 userpath 选项搭配使用时,可以完全控制用于访问用户定义的 Web 服务的 URL。
'deploy', ['all' | '<service_name>']
用于配置用户定义的 Web 服务,以使 ASE Web 服务引擎可通过 HTTP 或 HTTPS 对其进行访问,其中:
<service_name> – 是要部署的用户定义 Web 服务的名称。
deploy 和 undeploy 选项用于控制用户定义的 Web 服务何时可用。需要具备系统角色 webservices_role 特权才能使用此选项。
如果指定了 all 参数,则 ASE Web 服务引擎将删除其用户定义的 Web 服务的内部高速缓存,并从 SAP ASE 中重新读取有关用户定义的 Web 服务的所有元数据。
不能删除或重命名当前部署的用户定义的 Web 服务。
'dropalias' <alias_name>
用于删除表示数据库名称的别名,其中 <alias_name> 是要删除的别名。
如果一个已配置的用户定义的 Web 服务正在引用一个别名,则无法删除该别名。要删除该别名,必须先取消部署引用该别名的用户定义的 Web 服务。
help[, '<option>']
提供阐明如何使用 sp_webservices 存储过程的说明和示例。'<option>' 的有效值包括 add、list、remove 和 modify。
如果没有为 <option> 指定任何值,则 help 选项将输出 add、addalias、deploy、dropalias、list、listalias、listudws、modify、remove 和 undeploy 选项的简短语法描述。
'list' [, '<wsdl_uri>'] [, <sds_name>]
列出 WSDL 文件中描述的 Web 方法,其中:
<wsdl_uri> – 是所映射的 WSDL 文件的 URI。如果没有为 <wsdl_uri> 指定值,则 list 选项将显示有关已经映射到代理表的所有 Web 方法的信息。
<sds_name> – 是在 interfaces 或 sql.ini 文件中为 ASE Web 服务引擎指定的 SDS 服务器的名称。缺省值为 ws。如果 sysattributes 表中不存在任何条目,则会产生错误。
如果 <wsdl_uri> 和 <sds_name> 这两个参数都没有指定,则会按 wsdlid 顺序列出 sysattributes 表中的所有条目。
如果 WSDL 文件中描述的 Web 方法:
'listalias'
用于列出用户定义的 Web 服务中的所有别名。
'listudws' [, '<service_name>']
用于列出当前数据库的用户定义的 Web 服务,其中 <service_name> 是要列出的用户定义的 Web 服务的名称。
如果不指定 <service_name> 参数,则列出所有由用户定义的 Web 服务。
'modify', '<wsdl_uri', >'timeout=<time>'
用于修改 WSDL 文件的属性信息,其中:
<wsdl_uri> – 是要更改属性信息的 WSDL 文件的 URI。</p>
<p>通过从该代理表选择来调用该 Web 方法:
1> select * from getRate where _country1 ='usa' and _country2 = 'india'
2> go
以前的 select 返回的结果显示指定的参数的交换率:
Result _country1 _country2
43.000000 usa india
(1 row affected)
调用一个 Web 方法以显示 XML 文档中的股票信息。
1> sp_webservices "add" , "http://www.webservicex.net/stockquote.asmx?WSDL"
2> go
Web 方法 GetQuote 将映射到与其同名的代理表。
1> select outxml from GetQuote where _inxml = '<?xml version="1.0"
encoding="utf-8"?>
2> <GetQuote xmlns="http://www.webserviceX.NET/">
3> <symbol>SY</symbol>
4> </GetQuote>'
5> go
前面的 select 返回的结果显示 XML 文档中的报价信息:
outxml
<?xml version="1.0" encoding="UTF-8" ?><GetQuoteResponse
xmlns="http://www.webserviceX.NET/"><GetQuoteResult><StockQuotes><Stock>
<Symbol>SY</Symbol><Last>21.48</Last><Date>7/21/2005</Date><Time>4:01pm
</Time><Change>+1.72</Change><Open>20.00</Open><High>21.60</High>
<Low>19.91</Low><Volume>2420100</Volume><MktCap>1.927B</MktCap>
<PreviousClose>19.76</PreviousClose><PercentageChange>+8.70%
</PercentageChange><AnnRange>12.75 - 20.44</AnnRange><Earns>0.706</Earns>
<P-E>27.99</P-E><Name>SYBASE INC</Name></Stock></StockQuotes>
</GetQuoteResult></GetQuoteResponse>
(1 row affected)
通过一个显示股票信息的视图调用在上一个示例中映射到代理表的 GetQuote Web 方法。
1> create table stocksymbol(symbol varchar(100))
2> go
1> insert stocksymbol values("SY")
2> insert stocksymbol values("ORCL")
3> go
1> CREATE VIEW getstockvw as
2> select Symbol = xmlextract('//Stock/Symbol/text()',outxml returns varchar(5)),
3> Name = xmlextract('//Stock/Name/text()',outxml returns varchar(20)),
4> Time = xmlextract('//Stock/Time/text()',outxml returns varchar(10)),
5> Date = xmlextract('//Stock/Date/text()',outxml returns date),
6> High = xmlextract('//Stock/High/text()',outxml returns decimal(15,2)),
7> Low = xmlextract('//Stock/Low/text()',outxml returns decimal(15,2))
8> FROM GetQuote ,stocksymbol
9> WHERE _inxml = '<GetQuote xmlns="http://www.webserviceX.NET/"><symbol>'+symbol+'</symbol></GetQuote>'
10> go
1> select * from getstockvw
2> go
前面的 select 返回的结果显示视图定义指定的参数的报价信息:
Symbol Name Time Date High Low
------- ------------- ------- ------------ ------ ------
SY SYBASE INC 4:01pm Jul 21 2005 21.60 19.91
ORCL ORACLE CORP 4:00pm Jul 21 2005 14.05 13.54
MSFT MICROSOFT CP 4:00pm Jul 21 2005 26.48 26.19
(3 rows affected)
显示由用户“bob”在 pubs2 数据库中输入的以下命令的审计表条目:
sp_webservices 'deploy', 'all'
相应的审计表条目将列出 110、bob 和 pubs2,分别作为 event、loginname 和 dbname 列中的值。extrainfo 列包含以下内容:
webservices_role; deploy_all; ; ; ; ; bob/ase;
显示由用户“bob”在 pubs2 数据库中输入的以下命令的审计表条目:
sp_webservices 'deploy', 'rawservice'
相应的审计表条目将列出 110、bob 和 pubs2,分别作为 event、loginname 和 dbname 列中的值。extrainfo 列包含以下内容:
webservices_role; deploy; ; ; ; ; bob/ase;
显示由用户“bob”在 pubs2 数据库中输入的以下命令的审计表条目:
sp_webservices 'undeploy', 'all'
相应的审计表条目将列出 111、bob 和 pubs2,分别作为 event、loginname 和 dbname 列中的值。extrainfo 列包含以下内容:
webservices_role; undeploy_all; ; ; ; ; bob/ase;
显示由用户“bob”在 pubs2 数据库中输入的以下命令的审计表条目:
sp_webservices 'undeploy', 'rawservice'
相应的审计表条目将列出 111、bob 和 pubs2,分别作为 event、loginname 和 dbname 列中的值。extrainfo 列包含以下内容:
webservices_role; deploy; ; ; ; ; bob/ase;
有关 sysaudits 表列的完整说明,请参见《系统管理指南》。
如果没有为 Web 方法指定 和 值,则缺省情况下为 Web 方法生成的代理表是在 WSDL 文件中指定的 Web 方法的名称。如果已存在一个具有此 Web 方法名称的代理表,则生成的新代理表的名称将类似于:</p>
<div class="code-block"><pre><code>
<method_nameN>
其中:
– 是缺省代理表的名称</p>
<p></li></ul><ul><li> – 是一个介于 1 和 9 之间的数字,表示该 Web 方法的每个后续映射。可以有最多 99 个重复代理表。</p>
<p>如果要为 Web 方法指定 和 值,则代理表的名称必须是新的。如果已存在一个具有 中指定了名称的代理表,则会产生错误,而且在 add 选项中指定的所有 Web 方法都不会映射到代理表。</p>
<p>add 选项的输出中列出了已成功映射到代理表的方法,以及那些尚未映射的方法。未映射的 Web 方法的代理表名称在 add 选项的输出中以 NULL 表示。</p>
<p>> 注意</br></p>
<p>对于为 RPC/编码 Web 方法和文档/文字 Web 方法生成的代理表来说,用于输入和输出的列是不同的。在表示 RPC/编码 Web 方法的代理表中,每个输入和输出参数都有对应的一列。表示文档/文字 Web 方法的代理表包含 _inxml 和 outxml 两列。`