#c# #.net #database #oracle
#c# #.net #База данных #Oracle
Вопрос:
привет, я использую oracle db. получение в следующих операторах.»ORA-00936: отсутствующее выражение»
string sqlquery = ("select parent from tn2 where CONNECT BY PRIOR child=" node);
string connectionString = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.60.212.62)(PORT=1521)))(CONNECT_DATA=(SID=orcl)));User Id=apex_demo;Password=apex_demo;";
OracleConnection con = new OracleConnection(connectionString);
con.Open();
OracleDataAdapter adapter = new OracleDataAdapter(sqlquery, con);
adapter.Fill(objDT1);
con.Close();
Ответ №1:
Удалите точку с запятой в конце инструкции SQL. Это недопустимо при выполнении инструкций SQL из .NET.
Кроме того, where
здесь недопустимо, потому что вы не указываете условие. CONNECT BY PRIOR
Это не where
условие, а самостоятельная конструкция. Смотрите здесь для получения дополнительной информации о том, как использовать CONNECT BY PRIOR
.
Комментарии:
1. Затем верните одинарные кавычки, которые были там изначально. Кстати: действительно ли в вашей таблице tn2 есть столбец
child
со значением «уровень-1-1-767»?