标签: sap-ase

“Sybase ASE OLE DB 提供程序”提供程序未在本地计算机上注册

尝试使用来自 Visual Studio.net 2005 的 oledb 连接连接到 sybase 数据库时出现此错误

The 'Sybase ASE OLE DB Provider' provider is not registered on the local machine. 
Run Code Online (Sandbox Code Playgroud)

vb.net oledb sap-ase

5
推荐指数
2
解决办法
3万
查看次数

如何在没有完整外连接可用的情况下进行完整外连接

上周我惊讶地发现 sybase 12 不支持全外连接。但我突然想到,一个完整的外连接应该与同一个 sql 的右外连接联合的左外连接相同。任何人都可以想出一个不成立的原因吗?

sql full-outer-join sap-ase

5
推荐指数
1
解决办法
2万
查看次数

Sybase ASE 按级别等效连接

我想生成从 0 到 9000000 的数字。在 Oracle 中,我可以使用以下代码。如何在 Sybase ASE 中执行此操作?

这是在 Oracle 中:

SELECT level  Num
FROM DUAL
CONNECT BY LEVEL  <= 9000000
ORDER BY Num;
Run Code Online (Sandbox Code Playgroud)

如何在 Sybase ASE 中做到这一点?

我无法创建表并添加身份,因为我需要从 1 到 9000000 的数字,因此表会很复杂。是否有查询可以执行此操作?

sql sybase sap-ase

5
推荐指数
1
解决办法
1076
查看次数

为什么 count 在空表上不返回 0

我需要计算表的行数,但我收到了 count(*) 异常行为的提示。

当我在空表上使用多列选择时,count(*) 不返回结果。但如果我从 select 语句(单列选择)中删除其他列,则会返回预期结果(0 行)。

在下面的代码中,您将找到多个测试来向您展示我在说什么。

下面代码的结构是:

1)创建表

2)空表测试上的多列选择,返回意外结果

3)空表测试单列select,返回预期结果

4)填充表测试上的多列选择,返回预期结果

问题

鉴于这个结果我的问题是:

为什么空表上的多列选择不返回0,而单列选择返回0?

预期结果定义

对我来说预期结果意味着:

如果表为空,count(*) 返回 0。

如果表不为空,则返回行数

--创建测试表

CREATE TABLE #EMPTY_TABLE(
    ID INT
)

DECLARE @ID INT
DECLARE @ROWS INT
Run Code Online (Sandbox Code Playgroud)

--空表多列选择

--assignment attempt (Multi-column SELECT)
SELECT @ID = ID, @ROWS = COUNT(*) 
FROM #EMPTY_TABLE

--return Null instead of 0
SELECT @ROWS Test_01 , ISNULL(@ROWS, 1 )'IS NULL'

--Set variable with random value, just to show that not even the assignment is happening
SET @ROWS …
Run Code Online (Sandbox Code Playgroud)

sql sybase sap-ase

5
推荐指数
1
解决办法
9212
查看次数

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

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

\n\n

如果我从 .NET 程序向数据库写入 \'\xc3\xa9\' 字符,则它在数据库管理工具中显示为 \'\xc3\x95\'(大写 O 带波形符)。

\n\n

如果我从数据库管理工具向数据库写入\'\xc3\xa9\'字符,它在.NET程序中显示为\'\xc3\x85\'(大写A,顶部有一个圆圈)。

\n\n

我并不是想真正解决问题(即让两个程序显示相同的内容),尽管那会很好。我只是想猜测每个字符集使用哪些字符集来解释数据,这样如果我使用 .NET 转储数据并使用该工具重新输入数据,我就可以自己进行转换。

\n\n

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

\n\n

感谢您的帮助。

\n\n

编辑:使用Sybase ASE 12.5

\n\n

编辑:基本上问题是:您是否知道一种字符编码,其 E9 代码点表示字符 \'\xc3\x95\' (带有波形符的大写 O)或 \'\xc3\x85\' (带有一个圆圈的大写 A顶部)?(假设其中一个使用拉丁语 1,因此使用 E9,我认为很有可能)

\n\n

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

\n

character-encoding sap-ase

4
推荐指数
1
解决办法
2万
查看次数

如果存在非空或默认值的更改表语句不起作用

我尝试在test_tbl 中添加一个新列column2并将该列设置为默认值'N/A'不是 null。声明如下:

if not exists (select 1 from syscolumns where object_name(id) = 'test_tbl' and name = 'column2')
begin
  alter table test_tbl add column2 varchar(20) default 'N/A' not null
end
Run Code Online (Sandbox Code Playgroud)

错误是

Could not execute statement.
Column names in each table must be unique. Column name 'column2' in table 'test_tbl' is specified more than once.
Sybase error code=2705
Severity Level=16, State=3, Transaction State=1
Line 4
Run Code Online (Sandbox Code Playgroud)

但是如果我添加一列可以为

if not exists (select 1 …
Run Code Online (Sandbox Code Playgroud)

alter-table sap-ase

4
推荐指数
1
解决办法
8140
查看次数

Sybase 如何获得用破折号分隔的日期 yyyy-mm-dd?

例如yyyy-mm-dd,我想以这种格式获取日期2014-04-11。但似乎没有办法在 Sybase (ASE 12.5) 中使用convert函数来做到这一点。

目前,我得到 112 的日期并添加-数字之间。有什么好办法吗?

sybase datetime sap-ase

4
推荐指数
1
解决办法
1万
查看次数

Sybase 在空字符串 '' 的位置插入一个空格

显然,''在 VARCHAR 列中插入空字符串 ( ) 时,Sybase(在 ASE 15.7 中测试)会插入一个空格字符。实验我验证了该选项ansinull对这种行为没有任何影响:

> set ansinull on
> create table a (a1 varchar(1))
> insert into a(a1) values ('')
> select a1, len(a1) as 'len(a1)', datalength(a1) as 'datalength(a1)',
  ascii(a1) as 'ascii(a1)', char_length(a1) as 'char_length(a1)'
  from a
> go
(1 row affected)
a1 len(a1)     datalength(a1) ascii(a1)   char_length(a1)
-- ----------- -------------- ----------- ---------------
             1              1          32               1

(1 row affected)
>
>
> drop table a
> go
> set ansinull off …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sybase sap-ase

4
推荐指数
1
解决办法
2391
查看次数

Sybase - 自 ASE 启动以来获得时间的方法?

Sybase ASE 有没有办法获取自 ASE 服务器启动以来的时间?

sap-ase

3
推荐指数
1
解决办法
9329
查看次数

在 Sybase 中获取当前周的开始和结束日期

我正在尝试获取 Sybase ASE 数据库中表的当前周的开始和结束日期,并将这些日期作为可以添加到插入调用中的变量返回。

理想情况下,该功能可以简单地基于该getDate()功能工作。我尝试了其他方法并查看了其他答案,但很少有人专门针对 Sybase 语法。任何帮助,将不胜感激!

sql sybase getdate sap-ase

2
推荐指数
1
解决办法
3861
查看次数