远程Sybase数据库技术支持,联系手机:13811580958,QQ:289965371!

 

随着Sybase被完全整合到SAP下,Sybase原来的支持网站被SAP Support Portal取代。
只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。
目前,原Sybase所有产品(包括:Adaptive Server Enterprise、Sybase IQ、Replication Server、PowerDesigner等)的官方手册仍然可以从http://infocenter.sybase.com/help/index.jsp进行浏览或下载。暂不清楚该网站http://infocenter.sybase.com/help/index.jsp何时会被完全迁移到SAP Support上!
Sybase官方手册英文版有html和pdf两种格式,而中文版手册只有pdf一种格式。为了国内Sybase用户更方便、快捷地搜索Sybase常见产品的官方手册内容,特将中文版Sybase官方手册转为html格式!
Sybase产品官方手册中文版的html格式所有内容的版权归SAP公司所有!本博客站长是Sybase数据库的铁杆粉丝!

如有Sybase数据库技术问题需要咨询,请联系我!

  QQ :289965371 点击这里给我发消息
  Email:

以下官方手册为ASE 15.7 ESD#2中文版:

  1. 新增功能公告 适用于 Windows、Linux 和 UNIX 的 Open Server 15.7 和 SDK 15.7
  2. 新增功能摘要
  3. 新增功能指南
  4. ASE 15.7 发行公告
  5. 配置指南(windows)
  6. 安装指南(windows)
  7. 参考手册:构件块
  8. 参考手册:命令
  9. 参考手册:过程
  10. 参考手册:表
  11. Transact-SQL® 用户指南
  12. 系统管理指南,卷 1
  13. 系统管理指南,卷 2
  14. 性能和调优系列:基础知识
  15. 性能和调优系列:锁定和并发控制
  16. 性能和调优系列:监控表
  17. 性能和调优系列:物理数据库调优
  18. 性能和调优系列:查询处理和抽象计划
  19. 性能和调优系列:使用 sp_sysmon 监控 Adaptive Server
  20. 性能和调优系列:利用统计分析改进性能
  21. 程序员参考 jConnect for JDBC 7.0.7
  22. Adaptive Server Enterprise 中的 Java
  23. 组件集成服务用户指南
  24. Ribo 用户指南
  25. 内存数据库用户指南
  26. Sybase Control Center for Adaptive Server® Enterprise
  27. 安全性管理指南
  28. 实用程序指南

 


< 上一个 | 内容 | 下一步 >

create procedure (SQLJ)

说明 通过将 SQL 包装添加到 Java 静态方法中来创建 SQLJ 存储过程。可以接 受用户提供的参数并返回结果集和输出参数。


image

注释 注意:有关用于创建过程的 Transact- SQL 命令的语法和用法信 息,请参见 160 页的 “ create procedure

image


语法 create procedure [owner.]sql_procedure_name ([[in | out | inout] sql_parameter_name

sql_datatype [(length) | (precision[, scale])] [=default]

...])

[, [in | out | inout] sql_parameter_name sql_datatype [(length) | (precision[, scale])]]

[=default]

...])

[modifies sql data]

[dynamic result sets integer] [deterministic | not deterministic] language java

parameter style java

external name 'java_method_name [([java_datatype[, java_datatype

...]])]'

参数 sql_procedure_name

是过程的 Transact-SQL 名称,该名称必须符合标识符规则,并且不能 是变量。指定所有者的名称,以创建由当前数据库中的其他用户拥有 的另一个同名过程。 owner 的缺省值是当前用户。

in | out | inout

指定列出的参数的模式。 in 表示输入参数, out 表示输出参数, inout

表示参数既是输入参数又是输出参数。缺省模式是 in

sql_parameter_name 是该过程的参数名。过程执行时,提供每个输入参数的值。参数是可 选的, SQLJ 存储过程不需要带参数。

参数名必须符合标识符的规则。如果参数的值包含非字母数字字符, 则必须用引号将其引起来。这包括数据库名或所有者名限定的对象 名,因为它们包含一个句点。如果参数值以数字字符开头,则还必须 用引号将其引起来。


sql_datatype [(length) | (precision [, scale])]

是参数的 Transact-SQL 数据类型。

sql_datatype SQL 过程签名。

default

定义过程参数的缺省值。定义了缺省值后,在没有参数值的情况下也 可以执行过程。缺省值必须是一个常量。如果过程使用带有关键字 like 的参数名,则缺省值可包括通配符 (%_[ ] ^)。

缺省值可以为 NULL。过程定义可以指定参数值为 NULL 时采取某个 操作。

modifies sql data

表示 Java 方法调用 SQL 操作,读取并修改数据库中的 SQL 数据。这 是缺省的、同时也是唯一的实现方法。将它包含进来是为了在语法上 与 ANSI 标准兼容。

dynamic result sets integer

指定 Java 方法可以返回 SQL 结果集。 integer 指定方法可以返回的最 大结果集数。该值是实现定义的。

deterministic | not deterministic

支持该语法是为了与其他 SQLJ 兼容的供应商兼容。

language java

指定外部例程用 Java 编写。这是 SQLJ 存储过程所必需的子句。

parameter style java

指定在运行期传递给外部例程的参数是 Java 参数。这是 SQLJ 存储过 程所必需的子句。

external

表示 create procedure 为使用 SQL 之外的编程语言编写的外部例程定 义一个 SQL 名称。

name

指定外部例程 (Java 方法)的名称。指定的名称是一个字符串文字 且必须用单引号引起来:

'java_method_name [ java_datatype

[{, java_datatype} ...]]'


java_method_name

指定外部 Java 方法的名称。

java_datatype

指定可映射的或其结果集可映射的 Java 数据类型。这是 Java 方法签名。


示例 示例 1 创建 SQLJ 过程 java_multiply,该过程将两个整数相乘并返回一个 整数。

create procedure java_multiply (param1 integer, param2 integer, out result integer)

language java parameter style java external name 'MathProc.multiply'

示例 2 返回始终大于 10 的值:

create procedure my_max (a int = 10, b int = 10) language java parameter style java

external name 'java.lang.Math.max'


exec my_max

(return status = 10)


exec my_max 8

(return status = 10)

另请参见 Transact-SQL create procedure 的示例。

用法 为了与 SQLJ ANSI 标准兼容, SQLJ create procedure 语法与 Transact-SQL create procedure 语法不同。Adaptive Server 以相同的方 式执行每种存储过程。

为了避免看到因设置更改而引起的意外结果,请先将 set rowcount 0 作为初始语句运行,然后再执行 create procedureset 的范围仅限于 create procedure 命令,一旦过程退出便会重置为以前的设置。

在一条 create procedure 语句中最多可以包含 31 ininout out 参数。

为了与 ANSI 标准相符合,不要在参数名前加 @ 符号。不过,从

isql 或其它非 Java 客户端执行 SQLJ 存储过程时,必须在参数名前加

@ 符号,这样可以保留命名顺序。

权限 创建过程时,不对过程引用的对象 (如表和视图)进行权限检查。因 此,即使不能访问过程的对象,也可以成功创建过程。所有权限检查在 用户执行该过程时进行。

执行过程时,对象上的权限检查取决于过程和所有被引用的对象是否由 同一用户拥有。

如果过程的对象由不同的用户拥有,那么调用者必须得到可以直接 访问这些对象的授权。例如,如果过程执行对用户不能访问的表的 选择,过程的执行就会失败。


如果过程及其对象为同一用户所有,则应用特殊的规则。调用者自 动拥有访问过程的对象的 “隐式权限”,即使调用者不能直接访问 它们。不必授予用户直接访问表和视图的权限,可以给予他们有限 制地访问存储过程的权限。这样,存储过程就可以是一种安全性机 制。例如,过程的调用者可能只能访问表的某些行和列。

以下介绍了取决于细化权限设置的 create procedure (以及在创建扩展过 程时)的权限检查。

image

细化权限已启用 在启用细化权限的情况下,您必须具有 create procedure 特权。您必须具有 create any procedure 特权才能为其他用户运行 create procedure

细化权限已禁用 在禁用细化权限的情况下,您必须是数据库所有者或具有 create procedure 特权。


另请参见 命令 create function (SQLJ), drop procedure.

系统过程 sp_depends, sp_help, sp_helpjava, sp_helprotect.




--------------------------------------华丽的分割线-------------------------------------------------------------------------
之前就已经研发成功了能够从Sybase SQL Anywhere的DB文件中恢复数据的工具:ReadASADB。
此工具支持ASA v5.0,v6.0,v7.0,v8.0,v9.0,v10.0,v11.0,v12.0等版本。
恢复Sybase SQL Anywhere的工具在国内应该算首创。

ReadASADB功能
能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具

  1. 适用于所有的SQL Anywhere版本    包括:5.x,6.x,7.x,8.x,9.x,10.x,11.x,12.x
  2. 适用于所有的UltraLite版本
  3. 能够恢复出来表结构和数据
  4. 能够恢复自定义数据类型
  5. 能够恢复存储过程等对象的语法
  6. 能够导出到目标数据库
  7. 能够导出到SQL文件并生成导入脚本
  8. 支持多种字符集  包括:cp850、cp936、gb18030、utf8等
  9. 能够恢复未加密或者简单加密类型的数据
  10. 简单易用
  11. 限制:不支持AES加密的数据文件
请参考:研发成功了从Sybase SQL Anywhere的DB文件上恢复数据的工具
            SQL Anywhere数据库非常规恢复工具ReadASADB使用介绍

ReadASADB适用场景

各种误操作:

  1. 误截断表(truncate table)
  2. 误删除表(drop table)
  3. 错误的where条件误删数据
  4. 误删除db或log文件
  5. 误删除表中的字段

本工具的应用场景:

1.因为物理磁盘故障、操作系统、系统软件方面或者掉电等等原因导致的Sybase SQL Anywhere数据库无法打开的情况;
2.误操作,包括truncate table,drop table,不正确的where条件导致的误删除等;
Sybase SQL Anywhere无法打开时,比较常见的错误是:Assertion failed。
如:
1、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Checkpoint log: invalid bitmap page -- transaction rolled back
2、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Page number on page does not match page requested -- transaction rolled back
3、Internal database error *** ERROR *** Assertion failed:200502 (9.0.2.2451) Checksum failure on page 23 -- transaction rolled back
4、File is shorter than expected
5、Internal database error *** ERROR *** Assertion failed: 201116 Invalid free list index page found while processing checkpoint log -- transaction rolled back
6、*** ERROR *** Assertion failed: 51901 Page for requested record not a table page or record not present on page等等。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------