2017-07-16 61 views
-1

我有以下SQL查询时,我从Oracle的SQL开发人员工具运行它正常工作:SQL查询工作,而不是从代码

SELECT inn.TABLE_NAME, inn.COLUMN_NAME, inn.data_scale, inn.data_length, 
inn.CONSTRAINT_TYPE 
FROM 
(SELECT t.TABLE_NAME, c.COLUMN_NAME, c.data_scale, c.data_length, 
cons.CONSTRAINT_TYPE, 
    ROW_NUMBER() OVER(PARTITION BY t.TABLE_NAME, c.COLUMN_NAME ORDER BY 
cons.CONSTRAINT_TYPE desc) num 
from user_tables t join user_tab_cols c on c.table_name = t.table_name 
left join all_cons_columns cols on cols.TABLE_NAME = t.TABLE_NAME and 
cols.COLUMN_NAME = c.COLUMN_NAME 
left join all_constraints cons on cons.constraint_name = 
cols.constraint_name 
WHERE t.tablespace_name = 'name') inn 
WHERE inn.num=1 
order by inn.TABLE_NAME, inn.COLUMN_NAME asc; 

但是,当我在代码中运行它,我得到错误: “ORA-00933:SQL命令未正确结束”

任何想法?

感谢您的提前。

[编辑] OK,这是我的代码:

cmd.CommandText = Utilities.renderMethodFunc(command, commandParameters); 
using (OracleDataReader dr = cmd.ExecuteReader()) 
{...} 

,你可以在图片中看到的命令的价值 - 它正好就是我写的。 command

+2

请编辑您的问题,包括您用来运行此查询的C#代码。这个错误几乎可以肯定你是如何在C#字符串文字中构造查询的。 “代码中的” –

+0

“? **什么**代码?你的代码存在问题,但你不会发布它。 SQL Developer的查询工作正常,所以错误不在SQL代码中。然而,这只是你展示的唯一代码?你期望如何获得帮助? – mathguy

+0

你有没有注意到在你的代码中sql的末尾有'sql引号',或者是semicolumn(;)? –

回答

0

好的,我找到了。 问题在于';'在最后...