问题标签 [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.
sql - Sybase:如何使用 SQL 从 CHAR 或 VARCHAR 字段中删除不可打印的字符?
我正在使用一个 Sybase 数据库,该数据库似乎在某些字符串字段中包含不可打印的字符,这会丢弃我们的一些处理代码。乍一看,它似乎只有换行符和回车,但其中还有一个 ASCII 代码 27 - 一个 ESC 字符、一些重音字符和一些其他奇怪的东西。
我没有直接访问权限来更改数据库,因此更改坏数据不是一种选择。现在我不得不将其过滤掉。我们正在尝试从一个数据库中导出表数据,并在夜间批处理中将其加载到另一个应用程序使用的数据库中。
理想情况下,我想要一个可以传递字符列表并让 Sybase 返回删除了这些字符的数据的函数。如果可能的话,我想保留一些我们可以用普通 SQL 做的事情。
像这样删除 ASCII 0 - 31 的字符。
从表中选择 str_replace(FIELD1, (0-31), NULL) 作为 FIELD1,str_replace(FIELD2, (0-31), NULL) 作为 FIELD2
到目前为止, str_replace 是我能找到的最近的,但它只允许用另一个字符串替换一个字符串。不支持字符范围,也不会让我做上述事情。
我们在 Unix 服务器上的 Sybase ASE 12.5 上运行。
sap-ase - ASE Sybase BLOB
嗨,我想将文件写入 blob 数据类型的列中,有人可以将它的语法发送给我吗?感谢您是否也可以在进行选择时向我发送检索文件的语法。谢谢。
sap-ase - 消息 3151:执行转储时,被转储的数据库不是静止的
我正在将数据库转储加载到新的 ASE 服务器,但是当我尝试将 15gb 和 32gb 转储加载到数据库时,出现以下错误:
消息 3151,级别 16,状态 2:服务器“TestServer”,第 1 行:
Adaptive Server 无法加载此数据库,因为在执行转储时转储的数据库不是静止的。在 DUMP DATABASE 之前运行 sp_flushstats 并确保在转储期间不更新数据库。
当我将 2gb 转储加载到数据库时,一切都很好。我在网上搜索,他们建议sp_flushstats
在单个用户中获得更多的数据库转储,但我没有机会获得新的转储。
这些转储是从位于 Solaris Sparc 上的 ASE 12.5 实例中获取的,我正在尝试将这些转储加载到位于 Linux x86 上的 ASE 12.5 实例中。这会引起问题吗?或者这个错误是否与 ASE Developer Edition 的数据库大小限制有关?
linq - Linq 2 Sybase ASE数据库?有什么选择?
我需要查询现有的 Sybase ASE 数据库,并希望使用 Linq 语法进行数据检索。
我不需要写权限,也不需要全套 Linq 运算符,只需Select()
,
SelectMany()
, Where()
, andGroupJoin()
有哪些可用选项?
特别是,我想知道 nHibernate 和基于 IQ 工具包构建新的 Linq2Sybase 提供程序。
sql - 从多个字段中选择最大值/最小值
在以下查询中,开始/结束列是日期时间字段。
我应该如何修改此查询以获得另外两列,一列具有最小日期,另一列具有在每一行中重复的最大日期(所有 6 个日期时间字段和所有行)。
或者,对于相同的结果集,我如何创建一个只返回这 2 个(最小/最大)日期的新查询?
非常感谢!(我想要 SQL Server 2005 和 Sybase ASE 12.5.4 的答案)
sap-ase - sybase 自动生成的 id 问题
我有一个表,其中 PK 列 ID 类型为 bigint,它自动填充,顺序为 1,2,3 ......所以我注意到有时突然生成的 id 具有非常大的价值. 例如 ids 就像 1,2,3,4,5,500000000000001,500000000000002 之后有一个巨大的跳跃 5...ids 6 , 7 根本没有使用
我确实在这个表上执行了删除操作,但我绝对确定之前没有使用丢失的 id。
为什么会发生这种情况,我该如何解决?
非常感谢您关注这一点。
我的环境:sybase ase 15.0.3,linux
sap-ase - 从 Sybase 中的参数构造动态列
我正在尝试在 Sybase 中编写存储过程 (SP)。
SP 采用 5 个 varchar 参数。
根据传递的参数,我想构造要从特定表中选择的列名。
以下作品:
DECLARE @TEST VARCHAR(50) SELECT @TEST = "country" --print @TEST
execute("SELECT DISTINCT id_country AS id_level, Country AS nm_level FROM tempdb..tbl_books INNER JOIN (tbl_ch2_bespoke_report INNER JOIN tbl_ch2_bespoke_rpt_mapping ON tbl_ch2_bespoke_report.id_report = tbl_ch2_bespoke_rpt_mapping.id_report) ON id_" + @TEST + "= tbl_ch2_bespoke_rpt_mapping.id_pnl_level WHERE tbl_ch2_bespoke_report.id_report = 14")
但给了我多个结果:
1 1 行受影响。
1 4376 XYZ
2 4340 ABC
但是,我只想获得第二个结果。
我是否需要使用动态 SQL来实现这一点?
非常感谢您的帮助。
--Chapax
tsql - sybase - 除非字符串是硬编码的,否则无法使用索引
我正在使用Sybase 12.5.3 (ASE);我是 Sybase 的新手,尽管我已经广泛使用 MSSQL。我遇到了一个存储过程非常慢的场景。我已经将问题追溯到一个相对较大的表的单个 SELECT stmt。修改该语句显着提高了过程的性能(并且恢复它会大大减慢它;即,SELECT stmt 绝对是罪魁祸首)。
上面的代码是实际代码的改编/简化版本。请注意,我已经尝试过重新编译过程、更新统计信息等。
我不知道为什么 Sybase ASE 只会在字符串被硬编码时选择索引,而在从另一个表中选择时选择表扫描。有人请给我一个线索,并提前谢谢你。
sql - 查询 Sybase 中的垂直分区
我正在使用 sybase。我有一个包含大约 200 万条记录的表 A,其中包含一些我想移出并使其成为单独的表 B 的列。我在这个过程中有一些问题...... 1. 我已经决定使用垂直分区。可以吗?2.或者我可以在这个过程中使用什么其他技术?
请在此提供您宝贵的意见。
谢谢。
sql-server-2008 - 在哪里可以获得 Sybase ASE 的 64 位 OLEDB 和/或 ADO.Net 驱动程序?
我是 Sybase 的新手,到目前为止,仅仅连接到它是一个巨大的痛苦!我在世界上哪里可以获得 Sybase ASE 15 的 64 位驱动程序,以便我可以从我的 64 位 SQL 2008 进行连接?我们的 Sybase 服务器是 32 位的,媒体上没有 64 位驱动程序 :(