问题标签 [sap-ase]

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 投票
11 回答
48512 浏览

sql - 如何将逗号分隔的列表传递给存储过程?

所以我有一个 Sybase 存储过程,它接受 1 个参数,该参数是一个逗号分隔的字符串列表,并在 IN() 子句中使用 in 运行查询:

如何调用列表中超过 1 个值的存储过程?到目前为止我已经尝试过

编辑:我实际上发现这个页面对将数组传递给存储过程的各种方法有很好的参考

0 投票
7 回答
9808 浏览

tsql - Sybase (T-SQL) 中 varchar 日期验证的最佳方法?

我有一个存储过程,它的参数是一个varchar,需要将其转换为日期时间以供以后使用:

我希望日期字符串以“DD-MON-YYYY”格式提供,但为了进行防御性编码,如果由于某种原因无法成功转换,我想默认为系统日期和继续。在 PL/SQL 中,我可以使用异常处理来实现这一点,我也可以使用正则表达式相当容易地做到这一点,但是 Sybase 开箱即用支持的有限模式匹配不允许我这样做,我不能依赖第三方库或扩展。在 T-SQL 中有一种简单的方法吗?

注意:使用 Sybase ASE 12.5.3,没有 ISDATE 功能

0 投票
3 回答
21734 浏览

tsql - T-SQL 中临时表索引的最佳使用

如果您在存储过程中创建一个临时表并希望在其上添加一个或两个索引,以提高针对它所做的任何其他语句的性能,最好的方法是什么?Sybase 是这样说

"创建索引时表必须包含数据。如果创建临时表并在空表上创建索引,则 Adaptive Server 不会创建柱状图和密度等列统计信息。如果在创建索引后插入数据行,优化器的统计数据不完整。”

但最近一位同事提到,如果我在与实际使用临时表的存储过程不同的存储过程中创建临时表和索引,则 Adaptive Server 优化器能够使用它们。

总的来说,我不太喜欢增加一点价值的包装程序,所以我实际上并没有测试这个,但我想我会把问题放在那里,看看是否有人有任何其他的方法或建议?

0 投票
3 回答
8260 浏览

performance - Sybase 上不区分大小写的搜索

我已经厌倦了谷歌搜索在 Sybase ASE 上进行不区分大小写搜索的解决方案(Sybase 数据/列名区分大小写)。Sybase 文档自豪地说,只有一种方法可以进行此类搜索,即使用 Upper 和 Lower 函数,但俗话说,它存在性能问题。相信我他们是对的,如果你的表有大量数据,那么性能会很尴尬,你永远不会再使用 Upper 和 Lower。我对其他开发人员的问题是:你们如何解决这个问题?

PS 请不要建议更改排序顺序或移动到任何其他数据库,在现实世界中,开发人员不会控制数据库。

0 投票
4 回答
49297 浏览

sap-ase - 如何将存储过程中的数据获取到临时表中?

我正在研究 sybase ASE 15。正在寻找这样的东西

my_stp 返回 10 个数据行,每行有两列。

0 投票
2 回答
14264 浏览

tsql - 如何在 T-SQL 中将变量赋值与数据检索操作结合起来

澄清一下,我正在运行 Sybase 12.5.3,但我相信这也适用于 SQL Server 2005。基本上,我正在尝试编写一个看起来有点像这样的查询,我已经尽可能地简化它以突出问题:

此查询给我以下错误:“错误:141 为变量赋值的 SELECT 语句不得与数据检索操作结合使用。”

到目前为止,我唯一的解决方法是将派生表数据插入到一个临时表中,然后再次选择它。效果很好,但是这不起作用的事实让我很恼火。有一个更好的方法吗?

0 投票
1 回答
14923 浏览

character-encoding - 如何查找数据库使用的字符集

我可以从 .NET 程序(使用 ODBC)或通过数据库管理工具(用 Java 编写)访问数据库。

如果我从 .NET 程序将“é”字符写入数据库,则它在数据库管理工具中显示为“Õ”(带有波浪号的大写 O)。

如果我从 DB 管理工具向数据库写入一个“é”字符,它在 .NET 程序中显示为“Å”(大写 A,顶部有一个圆圈)。

我并没有试图真正解决问题(即让两个程序显示相同的东西),尽管那会很好。我只是想猜测每个字符集用于解释数据,以便如果我使用 .NET 转储数据并使用该工具重新输入数据,我可以自己进行转换。

那么,2 个字符集的哪个组合会导致上述字符不匹配?

谢谢你的帮助。

编辑:使用 Sybase ASE 12.5

编辑:基本上问题是:你知道一个字符编码,它的 E9 代码点代表字符'Õ'(大写 O 和波浪号)或'Å'(大写 A,顶部有一个圆圈)?(这假设其中一个使用的是拉丁语 1,因此是 E9,我认为这很可能)

编辑:保罗的解决方案做到了。关于字符集的答案是:hp-roman8

0 投票
6 回答
58752 浏览

stored-procedures - 给定出现在 proc 中的文本字符串,在 db 中查找 Sybase 存储过程

给定出现在 proc 中某处的文本字符串,如何在 Sybase 数据库中找到存储过程?我想看看数据库中的任何其他 proc 是否具有与我正在查看的类似的逻辑,并且我认为我有一个非常独特的搜索字符串(文字)

编辑:

我正在使用 Sybase 11.2 版

0 投票
1 回答
2207 浏览

ssis - 如何在 SSIS 中使用 Sybase.Data.ASEClient.dll .NET 提供程序?

我正在尝试在 SSIS 中创建数据连接。我安装了 Sybase.Data.ASEClient.dll 版本 1.1.680,但这并未显示为 .Net 提供程序。

是否可以将此 ADO.NET 提供程序与 SSIS 一起使用,如果可以,我如何使其可访问?

0 投票
9 回答
39334 浏览

tsql - 如何有条件地在 Sybase (TSQL) 中创建表?

好的,所以 Sybase (12.5.4) 将让我执行以下操作来 DROP 一个表(如果它已经存在):

但是如果我尝试对表创建做同样的事情,我总是会收到表已经存在的警告,因为它继续尝试创建我的表并忽略了条件语句。只需尝试运行以下语句两次,您就会明白我的意思:

运行以上会产生以下错误:

SQL Server 错误(localhost)错误:2714 at Line:7 消息:数据库中已经有一个名为“a_table”的对象。

这有什么关系?!