внешний стол в MS SQL 2019 - от MySQL через драйвер ODB C - PullRequest
1 голос
/ 06 марта 2020

Я пытаюсь создать внешнюю таблицу в MSSQL; связанная таблица поступает с сервера MySQL (MariaDB) через соединение ODB C. ODB C отлично работает в Excel;

Где моя ошибка?

USE projman
GO

IF EXISTS (
  SELECT *
    FROM sys.external_data_sources  
   WHERE name = 'juniorwebDS'
)
DROP EXTERNAL DATA SOURCE juniorwebDS;
GO

IF EXISTS (
  SELECT *
    FROM sys.database_scoped_credentials    
   WHERE name = 'JWDBCred'
)
DROP DATABASE SCOPED CREDENTIAL JWDBCred
GO

CREATE DATABASE SCOPED CREDENTIAL JWDBCred
    WITH    IDENTITY = '*****************',
            SECRET = '*********************';
GO

CREATE EXTERNAL DATA SOURCE juniorwebDS 
    WITH(
            TYPE = BLOB_STORAGE,
            LOCATION = 'odbc://***.***.***.***', --IP ADDRESS
            CONNECTION_OPTIONS = 'driver={MySQL ODBC 8.0 Unicode Driver};dsn=timesheet;database=juniorweb',
            CREDENTIAL = JWDBCred
        );
GO
-- ==============================
-- Create External Table Template
-- ==============================

IF OBJECT_ID('giornalieri') IS NOT NULL
    DROP EXTERNAL TABLE giornalieri
GO

CREATE EXTERNAL TABLE giornalieri
(
  [grn_data] date NOT NULL,
  [grn_orarioid] int DEFAULT 0,
  [grn_giornolavorato] int DEFAULT 0,
  [grn_ordinarie] int DEFAULT 0,
  [grn_assenze] int DEFAULT 0,
  [grn_eccedenze] int DEFAULT 0
)
WITH
(
    LOCATION = 'giornalieri',
    DATA_SOURCE = juniorwebDS
    --FILE_FORMAT = <file_format_name, sysname, sample_file_format>,
    --REJECT_TYPE = <reject_type, nvarchar(20), sample_reject_type>,
    --REJECT_VALUE = <reject_value, float, sample_reject_value>,
    --REJECT_SAMPLE_VALUE = <reject_sample_value, float, sample_reject_sample_value>
)
GO

IF OBJECT_ID('giustificaz_calc', 'U') IS NOT NULL
    DROP EXTERNAL TABLE giustificaz_calc
GO

CREATE EXTERNAL TABLE giustificaz_calc
(
  [gzc_data] date NOT NULL,
  [gzc_dipid] int NOT NULL,
  [gzc_giustid] int NOT NULL,
  [gzc_valore] decimal(7,2) NOT NULL
)
WITH
(
    LOCATION = 'giustificaz_calc',
    DATA_SOURCE = juniorwebDS
    --FILE_FORMAT = <file_format_name, sysname, sample_file_format>,
    --REJECT_TYPE = <reject_type, nvarchar(20), sample_reject_type>,
    --REJECT_VALUE = <reject_value, float, sample_reject_value>,
    --REJECT_SAMPLE_VALUE = <reject_sample_value, float, sample_reject_sample_value>
)
GO

Я получаю эту ошибку

    Messaggio 46506, livello 16, stato 36, riga 25
Invalid set of options specified for 'CONNECTION_OPTIONS'.
Messaggio 102, livello 15, stato 1, riga 38
Incorrect syntax near 'EXTERNAL'.
Messaggio 102, livello 15, stato 1, riga 41
Incorrect syntax near 'EXTERNAL'.
Messaggio 102, livello 15, stato 1, riga 62
Incorrect syntax near 'EXTERNAL'.
Messaggio 102, livello 15, stato 1, riga 65
Incorrect syntax near 'EXTERNAL'.

Почему CONNECTION_OPTIONS неверно? Почему «ВНЕШНИЙ» неверен, поскольку он исходит непосредственно из шаблона?

Спасибо

...