How to run large SQL statements on new lines

14 visualizaciones (últimos 30 días)
Dan Howard
Dan Howard el 25 de Oct. de 2018
Respondida: Dan Howard el 26 de Oct. de 2018
Good afternoon all...
Little questions regarding SQL statements in Matlab. I am currently using 2018 version and have produced a script that connects to a database and extracts data using a simple SQL statement.
I am trying to understand how you can tidy up the script by using larger SQL queries to extract more data by using a new line e.g ...
if true
% %Open the connection string- connect to Database
conn.Open(connection_string1);
SQL = 'select table.leg_no', ...
'from table');
end
This will only work if I place the whole statement on one line. I have tried [] and ().
Eventually I would like to create larger SQL queries that can be stored into variables to use in a GUI.
Really appreciate some help with this..Many thanks :-)
Please note: I am not running with the DataBase Toolbox.

Respuesta aceptada

Guillaume
Guillaume el 25 de Oct. de 2018
Editada: Guillaume el 25 de Oct. de 2018
Your question is really about how to input a char vector using more than one line:
SQL = ['select table.leg_no ', ...
'from table ', ...
'where table.col1 = 12345'];
See also this
edit: don't forget the spaces as I did originally, matlab won't insert them between each line for you.

Más respuestas (2)

Dan Howard
Dan Howard el 26 de Oct. de 2018
Many thanks for clearing that up for me. The only problem I seem to be having is that..
1.
if true
% SQL = [['select table.leg_no ', ...
'from table '];
end
This executes the SQl query ok
2.
if true
% SQL = ['select table.leg_no ', ...
'from table ', ...
'where table.col1 = 12345'];
end
This throws an Error which is...
Source: Microsoft OLE DB Provider for SQL Server Description: Invalid column name '12345'.
Error in Database (line 29) myrecordset=conn.Execute(SQL); % execute sql statement
Little confused with this. Does that mean the variable (SQL) wont execute a char vector?

Dan Howard
Dan Howard el 26 de Oct. de 2018
Managed to find the solution.
For the line...
if true
% where table_no = ''1234'''
end
Forgot you have to use double quotes.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by