Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Эксперт Pascal/Delphi
 Аватар для xxbesoxx
1135 / 616 / 129
Регистрация: 13.02.2009
Сообщений: 3,602

Oracle Delphi Ошибка ora-00933 sql command not properly ended

09.08.2013, 14:21. Показов 2896. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте ребята, После группировки делаю фильтр HAVING ....... IN вылетает ошибка ora-00933 sql command not properly ended читал на другом форуме и говорят что такой ошибка не хватает пробел пробел - расстояние вроде все нормально. Может кроме пробела еще что то не то. Пожалуйста посмотрите

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
    if Edit1.Text ='' then begin
    Beep();
     MessageDlg('Фильтр по пустым значениям не выполнится', mtWarning, [mbOK], 0);
     Edit1.SetFocus;
   Abort;
   Edit1.SetFocus;
    end;
OraQuery1.Close;
  OraQuery1.SQL.Clear;
  OraQuery1.SQL.Add(' select case when length(bp.code) <= 5 then  '' '' ||bp.code else substr( '' '' ||bp.code, 1, length( '' '' ||bp.code)-3) end code_main, '+
                        ' bp.TYPE_NAME_STR_Main, max(t.WDT) fd, '' '' ||c.comp_name name, '' '' Service, '+
                        ' nvl(substr(bp.Package_Name_Str, 1, instr(bp.Package_Name_Str, '+
                        ' case when length(bp.code) > 5 then substr(bp.code, -3) else null end) -1), bp.Package_Name_Str) prod_m, '+
                        ' '' '' || bp.Package_Name_Str prod, '' ''||bp.code code_f, '' ''||bp.Code_b code, '+
                        ' '' '' || bp.NOTE3 seria, '' '' ||to_char( bp.DATE3, ''mmyy'' ) valid, bp.DATE3, bp.COUNT_PACK, '+
                        ' '' '' || bp.Unit_SHORT_Name_Str unit, round(sum(t.COUNT_PR), 4) COUNT_PR, round(sum(t.COUNT_PR * cn.cost_full), 4) cost_full, '+
                        ' round(sum(cn.cost_No_TAX*t.COUNT_PR), 4) cost_no_tax_sum, round(sum(cn.cost_tax*t.COUNT_PR), 4) cost_tax_sum, '+
                        ' round(sum(cn.cost_additional*t.COUNT_PR), 4) cost_additional_sum, round(sum(t.COUNT_PR*cn.cost_No_TAX_org), 4) AMOUNT_ORIG_summ, '+
                        ' decode(bp.n3, 0, null, bp.n3) check_num,  bp.NOTE1 invoice_N, trunc(bp.DATE1, ''dd'') invoice_dt '+
                        ' from v1103_turnover t, v1011_contracts c, v1101_balance_name_unit_Cat bp, v1105_prodcostsum_new cn  '+
                        ' where  sysdate between c.fd and c.TD and t.contr_id = c.T1018_ID and cn.T1101_ID(+) = bp.T1101_ID  '+
                        ' and t.PROD_ID = bp.PROD_ID and t.CODE_ID = bp.CODE_ID and t.BALANCE_ID = bp.T1101_ID '+
                        ' and t.WDt > sysdate - 100 and t.WDt < sysdate - 90 '+
                        ' and t.oper_id = (select n.ID from v0909_names n where n.Typ = ''Operations'' and '+
                        ' n.Name = pg_constant.Get_Constant(''PO_Buy'')) '+
                        ' group by round(cn.cost_additional, 4), t.oper_id, t.T1104_ID, t.T1103_ID, t.check_num, bp.CONTR_ID, c.ORG1_ID, t.DEPOTI_ID, bp.PROD_ID, '+
                        ' bp.CODE_ID, bp.code, bp.drop_b, bp.UNIT_NAME, c.comp_name, c.ORG2_ID, bp.n3, bp.Package_Name_Str, bp.Code_b, '+
                        ' bp.NOTE3, bp.NOTE1, to_char(bp.DATE3, ''mmyy''), round(cn.cost_full, 4), round(cn.cost_tax, 4), '+
                        ' case when cn.cost_No_TAX_org = 0 then 0 else round((cn.cost_No_TAX)/cn.cost_No_TAX_org, 4) end, '+
                        ' round(cn.cost_No_TAX_org, 4), bp.TYPE_NAME_STR_Main, '+
                        ' round(cn.cost_No_TAX, 4), bp.pack_unit, t.comments, bp.Unit_SHORT_Name_Str, bp.T1101_ID,  bp.COUNT_PACK, '+
                        ' bp.No_Full_Pack, bp.packs_Count, bp.Package_Name_Str ||''^''|| t.check_num ||''^''|| bp.code || ''^'' || bp.NOTE3, bp.DATE1,t.T1104_ID, bp.DATE3 '+
                        ' order by bp.n3, max(t.FD) desc, c.comp_name, bp.Package_Name_Str');
 OraQuery1.SQL.Add(' HAVING CHECK_NUM IN ( ' + Edit1.Text+ ' ) ');
 OraQuery1.Open;
end;
Это запрос без это фильтр работает нормально--> OraQuery1.SQL.Add(' HAVING CHECK_NUM IN ( ' + Edit1.Text+ ' ) '); но мне надо отфильтровать по CHECK_NUM

Типа такого фильтр делаю на учебное схеме HR.Employees и все работает

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
    if Edit1.Text ='' then begin
    Beep();
     MessageDlg('Фильтр по пустым значениям не выполнится', mtWarning, [mbOK], 0);
     Edit1.SetFocus;
   Abort;
   Edit1.SetFocus;
  end;
    OraQuery1.Close;
    OraQuery1.SQL.Clear;
    OraQuery1.SQL.Add(' select employee_id,department_id, first_name, last_name '+
                      ' from employees where department_id IN (20,40,50,90,100) '+
                      ' group by employee_id,department_id, first_name, last_name ');
    OraQuery1.SQL.Add('HAVING employee_id IN ('+ Edit1.Text+ ')');
    OraQuery1.Open;
 
end;
Пожалуйста скажите ваши мнения где у меня ошибка на первый запросе ?

Добавлено через 2 часа 45 минут
Тема можно закрыть разобрал . CHECK_NUM это не логическое поля. Он появился после decode(bp.n3, 0, null, bp.n3)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.08.2013, 14:21
Ответы с готовыми решениями:

ORA-00933: SQL command not properly ended (Запрос неверно завершён)
Здравствуйте, поясните, пожалуйста, что не слава богу в таком запросе: select distinct r.name from first_table as pr2 inner join...

При выполнении запроса UPDATE возникает ошибка ORA-00933: SQL command not properly ended для таблицы с составным ключом
Эй, ребята, я пытаюсь обновить свою таблицу следующей частью кода: private void button4_Click(object sender, EventArgs e) ...

ORA-00933: неверное завершение SQL-предложения
Я только на начальном уровне изучения plsql, пытаюсь выполнить вот такие запросы вместе в plsql developer, но при выполнении выдает ошибку...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.08.2013, 14:21
Помогаю со студенческими работами здесь

Что здесь неправильно? ora - 00933
'SELECT Sum(ttfgld106004.t$amth),ttfgld106004.t$otyp, ttfgld106004.t$suno, ttccom020004.t$nama From ttfgld106004, ttccom020004 GROUP BY...

Ошибка ORA-12705 в Oracle XE
Подскажите, что делать. Проект написан в Intellej Idea с присоединение базы данных из Oracle 11g, при присоединении базы данных выдает...

Eclipse, Toad plugin, Oracle DB: ora-00604, ora-12705
Есть проблема. Когда я подрубаюсь с помощью JDBC к бд из своего прилложения на java, перед этим мне приходится сделать примерно...

ORA-01034 oracle not avaible,ORA-27101:shared memory realm does not exist
Всем добрый вечер! Oracle я устанавливаю в первый раз. По сути он мне нужен для реализации работы другой базы данных. Oracle я устанавливаю...

Как устранить ошибку [Microsoft][ODBC driver for oracle][Oracle]ORA-20003
При работе в программе возникает вот такая ошибка ORA-20003 что это может быть?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru