问题标签 [sybase]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2654 浏览

java - 为什么 Sybase JDBC 驱动程序“吃掉”异常?

我正在使用官方 Sybase JDBC 驱动程序连接到数据库并通过创建 CallableStatement、将参数绑定到它并在其上调用 .execute() 来调用存储过程。

但是,我发现即使存储过程失败,也没有抛出异常。我可以通过使用 Wireshark 嗅探到数据库的流量并观察返回的错误消息来验证故障是否传播回给我。

最后我发现使用 .executeUpdate() 而不是 .execute()确实给了我例外,但是我还有两个问题:

  1. 为什么 .execute() 和 .executeUpdate() 表现不同?从界面的 SUN 文档看来,他们应该(几乎)做同样的事情......
  2. 调用存储过程时将 .execute() 替换为 .executeUpdate() 是否总是合适的?存储过程必须符合某些特定要求才能使用 .executeUpdate() 调用吗?(例如,它必须有一个更新/删除/插入语句作为最后一步吗?)

更新:我尝试过 jTDS,它的行为正确(如:它在两种情况下都抛出 SQLException - 使用 .execute() 和使用 .executeUpdate())。但是,由于我无法控制的限制,切换驱动程序是不可能的。

另外:我对这个存储过程返回的结果不感兴趣,它是一个插入/更新类型的过程。我只会被插入以查看(并且能够捕获/记录)它是否失败。我尝试过的另一件事是在 .execute() 之后从连接中获取警告,但它也不包含任何内容。

0 投票
2 回答
679 浏览

sql - SQL 触发器问题:为什么这是一个语法错误?

我想为 Sybase 创建一个触发器,但它显示一个错误。

我要做的是,当对[student]表进行删除操作时,检查 [account] 上是否有与学生相关的记录,如果有,则引发异常。

Sybase 似乎缺乏支持。他们的官员似乎没有人来参观。

0 投票
4 回答
2248 浏览

tsql - 删除表中的 N 个最旧条目

如何删除 N 个最旧的条目。我是有限的Sybase。我需要编写一个接受数字 X 的存储过程,然后在表中只留下 X 个最新条目。

例如:说 ID 是自动递增的。它越小,这个条目越旧。

我需要一个像这样执行的程序。

结果将是

0 投票
1 回答
640 浏览

java - Sybase IQ 上结果集中的最佳更新

我希望重写代码以更新 Sybase IQ 数据库 v14 上的表,该数据库执行以下操作:

  1. 选择表中的所有记录并将一些数据提取到文件中
  2. 更新表中每条记录的提取到文件标志

目前,一旦将记录写入文件,其提取标志就会更新。目前表中有 40 000 条记录,该进程使用 40GB 的数据库临时空间。相关表中的每条记录包含 60 个字段,最多列包含 120 个字符。

数据库服务器是否为表中的每条记录创建了新版本的数据,并且随着时间的推移,我们在数据库服务器上创建了一个临时数据雪球,其中使用了 40GB 的帐户?处理数据的最佳方法是首先提取数据,将其写入文件,然后执行批量更新。由于我的理解是 Sybase IQ 通常用于竞技场,我认为数据库会针对插入、删除和选择进行优化,但在更新时表现不佳?sybase 数据库 IQ 服务器是否会在 HP-UX 和 Windows server 2003 上执行相同的操作。

0 投票
7 回答
203 浏览

database - 防止多个数据库之间的重复键

我的情况是,我们发布了一个新版本的软件,它将使用与旧版本不同的数据库(架构中的重大变化)。新旧系统都将投入生产将有相当长的一段时间,我们需要确保在两个数据库之间生成唯一 ID(我们不希望数据库 A 中有一行具有与数据库 B) 中的行相同的 ID。数据库是 Sybase。

我想出的可能的解决方案:

  1. 使用支持非常大的数字的数据类型并为每个数字分配一个范围,希望它们永远不会溢出。
  2. 对一个数据库使用负值,对另一个数据库使用正值。
  3. 添加一个标识数据库的附加列,并使用该列和当前 ID 的组合作为键。
  4. 哭。

我还能做什么?是否有更优雅的解决方案,以某种方式让两个数据库协同工作?我相信这两个数据库将在同一台服务器上,如果这很重要的话。

0 投票
4 回答
26921 浏览

sybase - 什么相当于 SQSH 中的“显示表”

如何让 sqsh 告诉我哪些表可用?

0 投票
3 回答
5808 浏览

tsql - 如何在 Sybase 中查询服务器选项的值?

例如,如果我想知道quoted_identifier服务器选项的当前值,有没有可以给我这个信息的查询?

0 投票
1 回答
3452 浏览

vbscript - 如何在 Powerdesigner 中使用 VBScript?

在 Powerdesign 中想创建一个 VBscript 来重命名/修改 powerdesigner 中的以下名称-概念或物理模型

替代/唯一键名:

UQ {table_name} {tablecolumnname} /////// 示例= UQ_Account_AccountNumber

关系名称:

FK_{table_name}_{reference_table_name}_{reference_column_name} //////示例= FK_Account_AccountPhone_HomePhoneID

问题是,如何获得“table_column_name”和“reference_column_name”?

0 投票
2 回答
4830 浏览

tsql - 如何在 Sybase 中查找所有包含字符串的数据库对象

有时我需要在数据库中查找一些字符串,通常它只是主机名或 IP 地址。

是否有任何脚本可以在我有权访问的所有 Sybase db 对象(或至少在所有表中)中找到字符串。

0 投票
3 回答
9276 浏览

database - 在 AIX 上从 isql 调用的 Sybase 存储过程:如何处理返回码

我有一个 AIX 批处理作业,它使用 isql 在 Sybase 中执行存储过程。存储过程在某些情况下返回错误代码。我希望 isql 将该返回码传递给 AIX 脚本。

我可以在 isql 中捕获存储的 proc 的返回代码,还是我必须编写某种输出文件并让我的 AIX 脚本检查它?

这是 isql 命令的外观。它在 Korn shell 脚本中运行。