【问题标题】:How to create sybase external table for SQL如何为 SQL 创建 sybase 外部表
【发布时间】:2020-04-24 09:26:25
【问题描述】:

我正在尝试使用 SQL Server 2019 到 sybase 创建一个外部表。 我已经能够使用相同的驱动程序和登录信息创建到 sybase 的链接服务器。

我能够执行此代码没有错误

CREATE EXTERNAL DATA SOURCE external_data_source_name
WITH ( 
LOCATION = 'odbc://jjjjj.nnnn.iiii.com:xxxxx',
CONNECTION_OPTIONS = 'DRIVER={SQL Anywhere 17};
ServerNode = jjjjj.nnnn.iiii.com:xxxxx;
Database = report;
Port = xxxxx',
CREDENTIAL = [PolyFriend] );

但是当我尝试使用数据源创建表时

CREATE EXTERNAL TABLE v_data(
event_id int 
) WITH (
LOCATION='report.dbo.v_data',
DATA_SOURCE=external_data_source_name
);

我得到这个错误:

105082;一般 ODBC 错误:[SAP][ODBC 驱动程序][SQL Anywhere]数据库 找不到服务器。

【问题讨论】:

  • Sybase Adaptive Server Anywhere 还是 Sybase Adaptive Server Enterprise?

标签: sql sql-server sybase


【解决方案1】:

您需要在 connection_options 中指定 Host & ServerName & DatabaseName 属性(对于 SQL Anywhere)

CREATE EXTERNAL DATA SOURCE external_data_source_name
WITH ( 
LOCATION = 'odbc://jjjjj.nnnn.iiii.com:xxxxx',
CONNECTION_OPTIONS = 'DRIVER={SQL Anywhere 17};
Host=jjjjj.nnnn.iiii.com:xxxxx; 
ServerName=xyzsqlanywhereservername;
DatabaseName=report;',
CREDENTIAL = [PolyFriend] );

Host == machinename:port,SQLAnywhere 所在的机器名和端口很可能是 SQLAnywhere 服务正在侦听连接的默认 2638。

ServerName == 托管数据库的 SQLAnywhere 服务器/服务的名称(连接到 SQLAnywhere db 并执行 select @@servername)。

【讨论】:

  • 这是我丢失的@@servername。谢谢 !我一直在摇头。你知道为什么我会得到一个通用 ODBC 错误:[SAP][ODBC Driver]Invalid use of null pointer 。创建外部表时: CREATE EXTERNAL TABLE v_event( event_id int NULL ) WITH ( LOCATION='xxx.jjj.v_event', DATA_SOURCE=external_data_source_name2 );我只是想创建一个包含一列的表进行测试
  • 只需使用 LOCATION='dbo.v_event',不需要 3 个部分名称,因为在 connection_options 中指定了 DatabaseName(或 Database)。还要确保使用完全相同的数据类型和可空性双方(对于 sql 外部表和任何位置 dbo.v_event 的 event_id int null )
  • 我更新了我的进度并包含了如果我只放置 schema.table 会发生什么
  • 在您的编辑中,位置设置为 LOCATION = 'sqlserver:..",不应该是 LOCATION = 'odbc://..."吗? DBN 连接属性也已过时(?),只需使用 DatabaseName(或 Database)即可。
  • 这可能是个问题。
猜你喜欢
  • 1970-01-01
  • 2019-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-29
相关资源
最近更新 更多