Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » MobiLink - 服务器管理 » 使用 MobiLink 服务器技术 » MobiLink 统一数据库

 

Oracle 统一数据库

将 Oracle 设置为统一数据库

要设置 Oracle 用作 MobiLink 统一数据库,必须运行设置过程,此过程将添加 MobiLink 同步所需的 MobiLink 系统表、存储过程、触发器和视图。可通过多种方法实现这一点:

  • 运行 syncora.sql 安装脚本,它位于 install-dir\MobiLink\setup 中。

  • 在 Sybase Central 的 MobiLink 插件中,选择 [模式] » [管理] 并连接到服务器数据库。右击数据库名,选择 [检查 MobiLink 系统设置]。如果需要对您的数据库进行设置,系统将提示您继续。请注意,如果您为现有 MobiLink 系统设置取了别名,则应该以其模式具有 MobiLink 系统设置的用户身份进行连接。

  • 使用 [创建同步模型向导] 或 [部署同步模型向导] 时,将在连接到服务器数据库时检查系统设置。如果需要对您的数据库进行设置,系统将提示您继续。

注意

运行安装脚本的数据库用户是具有更改 MobiLink 系统表权限的唯一用户,这是配置 MobiLink 应用程序所必需的。请参见所需权限

MobiLink 服务器用于连接统一数据库的 RDBMS 用户必须能够使用 MobiLink 系统表、过程等,但不能使用任何限定符(例如,SELECT * from ml_user)。请参见MobiLink 服务器系统表

ODBC 驱动程序

必须为 Oracle 统一数据库设置 ODBC DSN。请参见:

Oracle 问题
  • 存储过程   如果在 Oracle 中使用存储过程,则必须为 Oracle ODBC 驱动程序选择 [过程返回结果] 选项。

    请参见iAnywhere Solutions Oracle 驱动程序

  • 会话范围的变量   Oracle 不提供会话范围的变量。但可以将会话范围的信息存储在 Oracle 程序包的变量中。Oracle 程序包允许创建、修改和删除这些变量;这些变量可以与当前 Oracle 程序包持续同样长的时间。

  • 自动增量方法   为了维护主键的唯一性,您可以用 Oracle 序列生成与自动增量字段的键列表相似的键列表。CustDB 示例数据库提供了代码示例,在 Samples\MobiLink\CustDB\custora.sql 中可以找到它们。但是,与自动增量不同的是,您必须显式参考该序列。如果 INSERT 语句中未引用此列,自动增量将自动插入列值。

  • Oracle 不支持空字符串   在 Oracle 中,空字符串被视为 NULL。在 SQL Anywhere 和 UltraLite 中,空字符串具有空值之外的其它含义。因此,拥有 Oracle 统一数据库后,应避免在客户端数据库中使用空字符串。

  • CHAR 列   在 Oracle 中,CHAR 数据类型长度固定并填充空白以达到字符串的全长。在 MobiLink 远程数据库(SQL Anywhere 或 UltraLite)中,CHAR 与 VARCHAR 相同:值不填充空白以达到固定宽度。强烈建议在统一数据库中使用 VARCHAR 而不是 CHAR。如果必须使用 CHAR,在同步过程中可以使用 mlsrv11 -b 命令行选项删除字符串的尾随空白。此选项对于用于检测冲突的字符串比较十分重要。

    请参见-b 选项

  • 数据类型映射   列的数据类型必须在统一数据库和远程数据库之间正确映射。有关详细信息,请参见Oracle 数据映射

隔离级别

请参见MobiLink 隔离级别


使用 Oracle varray