Handling Quotation when Inserting Table to SQL Database

I have a table that looks like this:
id = [1 2]';
name = {'abc', 'a''bc'}';
data = table(id,name);
disp(data)
Now when I tried to insert this table to a MS SQL database, I got this error:
hdr = {'id','name'};
insert(conn, 'userName.dbName.tableName', hdr, data)
Apparently it's because of the single quotation mark in the second row of the table, as I can see the first row got inserted successfully.
Thoughts?

2 件のコメント

Kojiro Saito
Kojiro Saito 2018 年 6 月 13 日
I cannot reproduce this issue in MATLAB R2018a with SQL Server 2016. Which MATLAB and SQL Server versions are you using?
Ledger Yu
Ledger Yu 2018 年 6 月 13 日
Matlab 2013b and SQL Server 2008 R2. Anyway I figured out where the issue lies. Please see my own comment.

サインインしてコメントする。

 採用された回答

Ledger Yu
Ledger Yu 2018 年 6 月 13 日

0 投票

The issue appears to be that when Matlab sends data to SQL, it is already an "interpreted" version. So it was a single quotation that SQL receives, not a double one which I passed as an input to "data".
This runs successfully:
id = [1 2]';
name = {'abc', 'a''''bc'}';
data = table(id,name);
insert(conn, 'userName.dbName.tableName', hdr, data)

その他の回答 (0 件)

カテゴリ

質問済み:

2018 年 6 月 13 日

回答済み:

2018 年 6 月 13 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by