问题标签 [sybase-ase15]

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 投票
0 回答
385 浏览

sybase - 无法使用 Isql 连接到 Sybase 15.0.3 服务器

我已经在 Read Hat Linux 上安装了 Sybase ASE 15.0.3。ASE 服务器已启动并正在运行。但是,我无法通过 iSql 连接到服务器。

[sybase@ip-********* 安装]$ isql -SCLGETCLD -Usa -Pnull 无法检索 ID 4 CT-LIBRARY 的本地化消息错误:ct__string_extended_encryption:用户 api 层:内部公共库错误:客户端密码加密失败。

我正在使用 sa 的默认密码 null。我在安装过程中没有为Sa设置任何密码。

我试过查看接口文件,它看起来不错。寻找库 sybase/15/OCS-15_0/lib3p/sybcsi 并且它们在适当的权限下很好。

不确定我是否遗漏了什么。任何有关该问题的意见将不胜感激。

0 投票
2 回答
4948 浏览

java - “tempdb”数据库中的多语句事务中不允许使用“CREATE TABLE”命令

我正在研究 java 项目,在该项目中我使用Sybase 和 Apache Metamodel来获取表数据及其信息。现在“ ddl in tran ”选项是正确的,但是当我使用 Apache Metamodel 获取列详细信息时,它给了我错误:

com.sybase.jdbc4.jdbc.SybSQLException:“tempdb”数据库中的多语句事务中不允许使用“CREATE TABLE”命令。

我在 Windows 10 上安装了 Sybase ASE 15.5。

0 投票
0 回答
138 浏览

sybase - Sybase proc 抛出错误 - 语法不正确,“,”

我在我的应用程序中使用 Powerbuilder 和 Sybase。我需要将屏幕上的日文字符保存在表格中。但是当我尝试更新现有行并单击保存时,我得到一个 DB 错误代码 102,错误:',' 附近的语法不正确。我尝试使用 update 命令直接在数据库表中更新,这工作正常。但是当我从我的应用程序中尝试相同的操作时,我得到了这个错误。请帮忙。

谢谢沙米莎

0 投票
0 回答
152 浏览

sybase - Sybase 15.7:在大表中聚合数据

我们有一个相当简单的存储过程,它将所有数据聚合到一个大表中(然后将结果放在另一个表中)。对于一个 5M 行的表,这个过程大约需要 4 分钟 - 这是完全合理的。但是对于一个13M行的表,这个相同的过程大约需要 60 分钟。

看起来我们正在打破某种门槛,我很难找到一个简单的解决方法。手动将其重写为聚合表的一小部分的几个“线程”会导致 10-15 分钟的合理运行时间。

有没有办法在这里看到实际的瓶颈?

更新:这两个查询的查询计划当然是相同的,它们看起来像这样:

更新 2:
一些统计数据:

更新 3:
set statistics io,time on结果重新格式化以便于比较:

5M 行:

13M 行:

0 投票
1 回答
295 浏览

sybase - 在灾难恢复站点中还原数据库

我们的 DR sybase 解决方案基于恢复完整备份,然后从主站点转储事务日志。sybase 是旧版本:ASE15.0 但是,解决方法不行。恢复完整备份后(没有错误),事务日志的恢复失败(说在数据库上执行了活动)。我认为是因为在恢复完整备份之后,序列被破坏了:

数据库'db_warehouse',检查点=(2511803, 20), first=(2511803, 20), last=(2511900, 1)

谁能帮我理解我为什么会有这种行为?

用于恢复数据库的命令如下:

load database db_warehouse from "/dumps/sybase/db_warehouse_20191215010001.dmp

提前谢谢P

0 投票
1 回答
48 浏览

oledb - 转换失败,因为 DateTime 数据值溢出了为使用者缓冲区中的 DateTime 值部分指定的类型

我在 Sybase ASE 中有一个存储过程,其中包含日期参数,所以当我创建 OLE DB 连接并将日期参数传递给 OLE DB 命令时,我们正在映射到具有 OLEDBType.DBTimeStamp 类型的参数,日期时间参数类型为存储过程是smalldatetime。这是示例代码。

在执行存储过程时,我收到了错误。“转换失败,因为 DateTime 数据值溢出了为消费者缓冲区中的 DateTime 值部分指定的类型”?请帮忙!!!

0 投票
1 回答
54 浏览

sybase-ase15 - Sybase 12.5 与 15.0 客户端连接库:插入 15.7 ASE 时使用 15.0 插入速度慢 10 倍

我维护了一些在 RH Linux 上运行的遗留代码,这些代码通过网络将插入发送到客户端的 Sybase。我们使用的是 Sybase 12.5 库,刚刚迁移到使用 Sybase 15.0 客户端库。

我的应用程序记录了它通过网络发送插入的时间,以及它从目标 Sybase 获得确认的时间。使用 12.5 库时,时间约为 5 毫秒,现在使用 15.5 库时,大约为 50 毫秒。

我在应用程序端所做的唯一更改是在命令行上指定接口文件的位置。以前,该文件位于默认位置 - Sybase 安装位置。现在它位于应用程序的部署位置,因此需要明确指定位置。

有没有人知道是什么导致了速度的急剧变化,或者有关于我可以在哪里查看的提示或关于如何追踪根本原因的想法?

请原谅缺乏技术细节。我不是数据库管理员,而是使用已编译库连接到 Sybase 并且无权访问细节的开发人员。话虽如此,我在这两种情况下都使用相同的内部库,只是 Sybase 库不同。

我的 Sybase 12.5 和 15 安装如下所示:

编辑

经过更多挖掘后,看起来 OCS-12-5 下的库实际上不是针对 12_5 而是针对 15_5 的!

$ 字符串 sybase/OCS-12_5lib/libsybct*.a | grep "Sybase Client-Library" Sybase Client-Library/15.5/P/DRV.15.5.0/Linux x86_64/Linux 2.6.9-55.ELsmp x86_64/BUILD1550-003/64bit/OPT/Mon Oct 5 23:16: 48 2009 Sybase Client-Library/15.5/P/DRV.15.5.0/Linux x86_64/Linux 2.6.9-55.ELsmp x86_64 本机线程/BUILD1550-003/64bit/OPT/2009 年 10 月 6 日星期二 00:06:57

这意味着我认为 12.5 比 15.0 快的假设是错误的。实际发生的是 15.5 比 15.0 快。这更有意义。

我不会去追捕将这些文件提交到标记为 OCS-12-5 的目录中的白痴......

0 投票
0 回答
1794 浏览

data-storage - 如何在 Sybase ASE 中计算单个表的大小

我需要计算托管在 Sybase ASE 系统上的数据库中各个表的总大小。我们使用的 Sybase ASE 系统的版本是 15.7.1。

目标是确定系统上托管的数据库中每个表使用的总磁盘存储空间。因此,我需要考虑每个表的数据和索引部分的大小。

而且,我希望实现的是数据库中每个表的列表,其中包含以下信息: - 数据大小 - 索引大小 - 总大小(数据 + 索引)

我相信我需要多个查询来产生上述追捧的结果。但是,我不确定我的一些查询逻辑的准确性,尤其是计算索引大小的准确性。并且,来自该网站的任何建议将不胜感激。

以下是我迄今为止为实现上述目标而创建的查询:

--计算所有表的数据大小-- SELECT obj.[name], stats.[rowcnt], stats.[datarowsize], (stats.[rowcnt] * stats.[datarowsize]) AS 'ObjectSize' FROM [dbo].[systabstats] stats INNER JOIN [dbo].[sysobjects] obj ON obj.[id] = stats.[id] WHERE (obj.[type] = 'U') AND (stats.[indid] = 0)

-- 计算 AllPages-Locked 表上聚集索引的大小 -- SELECT obj.[name], stats.[rowcnt], stats.[datarowsize], (stats.[rowcnt] * stats.[datarowsize]) AS 'ObjectSize' FROM [dbo].[systabstats] stats INNER JOIN [dbo].[sysobjects] obj ON obj.[id] = stats.[id] WHERE (obj.[type] = 'U') AND (stats.[indid] = 1)

-- 计算数据库中仅数据锁定表上的聚集和非聚集索引的大小 -- SELECT obj.[name], idx.[name] AS 'IndexName', stats2.[rowcnt] AS 'Object_rowcnt', stats.[leafrowsize], (stats2.[rowcnt] * stats.[leafrowsize]) AS 'ObjectSize' FROM [dbo].[systabstats] stats INNER JOIN [dbo].[sysobjects] obj ON obj.[id] = stats.[id] INNER JOIN [dbo].[sysindexes] idx ON (idx.[id] = stats.[id]) AND (idx.[indid] = stats.[indid]) LEFT OUTER JOIN [dbo].[systabstats] stats2 ON (stats2.[id] = stats.[id]) AND (stats2.[indid] IN (0, 1)) WHERE (obj.[type] = 'U') AND (stats.[indid] > 1)

0 投票
0 回答
107 浏览

sap-ase - Sybase ASE 15.7:将一个 sp 的结果集传递给另一个并并行调用 2 个 SP

根据用于创建全局临时表的 sybase 文档。

其中说在 tempdb 中创建一个全局临时表。这样它就可以在不同的进程之间共享。

会话 1:这里我通过 proc 创建全局临时表。

创建过程 testglobaltemp as begin create table tempdb..tstglobal (id int , username varchar(8))

插入 tempdb..tstglobal select 1 , 'user1' end

创建过程 accessglobaltemp as begin exec testglobaltemp select * from tempdb.tstglobal end

一切都按预期工作。

会话 2:(在不同的实例上)我运行相同的 select * from tempdb.tstglobal 它给了我同样的结果,这也是预期的。

现在我根据文档断开会话 1,一旦我从会话 1 断开,表应该被删除。但是在第 2 次会话中,我仍然可以看到数据并且查询工作正常,直到或除非我没有明确删除表。

问题:我有 2 个 SP 说 SP1 和 SP2。我想使用第三个 SP 并行调用它们,比如 SPCaller。这在 sybase 15.7 中是否可行

提前致谢。

链接: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc32300.1570/html/sqlug/ title.htm

0 投票
2 回答
131 浏览

sybase - 如何创建本机 Sybase BCP 文件?

我的程序内存中有数据,需要导入数据库。

出于性能原因,我想通过 Sybase BCP 来实现,特别是使用本机文件格式。

挑战:我需要知道原生 Sybase BCP 文件格式是什么,而且它似乎没有在任何地方记录。

有没有很好的文档?创建一个逻辑的例子?

(我知道我可以轻松地创建字符 BCP 文件,但这比原生格式慢)