использование oracle db. получение в следующих операторах.»ORA-00936: отсутствующее выражение» , как это исправить?

#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»?