Форум программистов, компьютерный форум, киберфорум
Наши страницы
Oracle
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
Lubomyr
5 / 5 / 0
Регистрация: 22.12.2011
Сообщений: 121
1

Ora: 00907

17.01.2012, 04:03. Просмотров 3742. Ответов 16
Метки нет (Все метки)

извините, возможно действительно слепой, но никак не вижу где не хватает скобки ((((

Select CAST((CASE WHEN CHARINDEX('ЗП', 1PO)>0
THEN RIGHT(1PO,LEN(1PO)-CHARINDEX('ЗП',1PO)+1) ELSE NULL END) AS varchar(20)) AfterText, 1PO
from Lyb4eg;
0
Миниатюры
Ora: 00907  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2012, 04:03
Ответы с готовыми решениями:

В чем ошибка? ORA-00907: missing right parenthesis
вот создаю таблицу из примера Грубера, выдает ошибку, хотя в упор не вижу где...

Не могу понять в чем ошибка ORA-00907: missing right parenthesis
Вот текст скрипта: CREATE TABLE table1 ( table1_id NUMBER(38)...

ORA-01031, ORA-01034, ORA-27101
Доброе утро! Я вообще ни раз не базист, но появилась необходимость поставить...

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

Ora-12541
Подскажите плиз, как настроить Oracle в домашних условиях??? Если есть у...

16
turbanoff
Эксперт Java
4018 / 3753 / 741
Регистрация: 18.05.2010
Сообщений: 9,329
Записей в блоге: 11
Завершенные тесты: 1
17.01.2012, 06:40 2
SQL
1
CHARINDEX ('ЗП', 1 PO)
это вызов функции с 3-мя параметрами? или с 2-мя?
0
Lubomyr
5 / 5 / 0
Регистрация: 22.12.2011
Сообщений: 121
17.01.2012, 11:24  [ТС] 3
1PO - это имя таблицы... Что Вы имеете ввиду "с 3-мя параметрами? или с 2-мя? " ?
Мне необходимо разделить столбец таким образом что бы остался весь текст после "ЗП", "ЗП" включительно...
0
KuKu
1559 / 1037 / 93
Регистрация: 17.04.2009
Сообщений: 2,995
17.01.2012, 11:55 4
А вы уверены, что в оракле есть charindex?
0
Lubomyr
5 / 5 / 0
Регистрация: 22.12.2011
Сообщений: 121
17.01.2012, 11:57  [ТС] 5
Сейчас уже уверен что нету... Это буде работать для MS... А не подскажете как перевести на оракловую БД?
0
KuKu
1559 / 1037 / 93
Регистрация: 17.04.2009
Сообщений: 2,995
17.01.2012, 12:04 6
Eсли правильно понял, charindex - это instr, right - substr, len - length. substr от right отличается, но можно заменить. 1PO - что то мне кажется, что это не имя таблицы.
0
Grossmeister
Модератор
3408 / 2461 / 419
Регистрация: 21.01.2011
Сообщений: 10,791
17.01.2012, 12:09 7
Цитата Сообщение от Lubomyr
1PO - это имя таблицы
Не понял, это единица или латинская буква l ?
На всякий - Oracle требует, чтобы имена объектов начинались с буквы. Если надо по другому, то такое имя придется все время писать в двойных кавычках
0
Lubomyr
5 / 5 / 0
Регистрация: 22.12.2011
Сообщений: 121
17.01.2012, 14:59  [ТС] 8
ОООО, вчера натупил....(((( не так понял расшифровку иной ошибки .... ну исправил, сделал все буквами ...

Добавлено через 3 минуты
Вот только проблема в RIGHT, LEN, CHARINDEX эти функции не поддерживаются ораклом...( Можете подсказать чем заменить?

Добавлено через 2 часа 26 минут
Переделал по оракл, но неправильно выводит:

Select CAST((CASE WHEN INSTR('ЗП', PO)>0
THEN SUBSTR(PO,LENGTH(PO)-INSTR('ЗП',PO)+1) ELSE NULL END) AS varchar(20)) AfterText, PO
from Lyb4eg;

не отделяет то что мне нужно ...((((
0
KuKu
1559 / 1037 / 93
Регистрация: 17.04.2009
Сообщений: 2,995
17.01.2012, 17:37 9
right это не substr
0
turbanoff
Эксперт Java
4018 / 3753 / 741
Регистрация: 18.05.2010
Сообщений: 9,329
Записей в блоге: 11
Завершенные тесты: 1
17.01.2012, 19:34 10
Цитата Сообщение от Lubomyr Посмотреть сообщение
ОООО, вчера натупил....(((( не так понял расшифровку иной ошибки .... ну исправил, сделал все буквами ...

Добавлено через 3 минуты
Вот только проблема в RIGHT, LEN, CHARINDEX эти функции не поддерживаются ораклом...( Можете подсказать чем заменить?

Добавлено через 2 часа 26 минут
Переделал по оракл, но неправильно выводит:

Select CAST((CASE WHEN INSTR('ЗП', PO)>0
THEN SUBSTR(PO,LENGTH(PO)-INSTR('ЗП',PO)+1) ELSE NULL END) AS varchar(20)) AfterText, PO
from Lyb4eg;

не отделяет то что мне нужно ...((((
вы бы рассказали для начала что делают эти функци в MS SQL
http://www.dba-oracle.com/oracle_new...ifferences.htm
0
Lubomyr
5 / 5 / 0
Регистрация: 22.12.2011
Сообщений: 121
17.01.2012, 19:37  [ТС] 11
Необходимо разбить столбец
Например столбец:
___________________
Описание |
___________________
123 ЗП qwe
345r43ЗПd,
wer3rЗП 2423f3f

- разделитель "ЗП" , в результате должно получиться:
___________________ ___________________
Описание1 | Описание2 |
___________________ ___________________
123 |ЗП qwe
345r43 |ЗПd,
wer3r |ЗП 2423f3f
0
turbanoff
Эксперт Java
4018 / 3753 / 741
Регистрация: 18.05.2010
Сообщений: 9,329
Записей в блоге: 11
Завершенные тесты: 1
17.01.2012, 21:49 12
вроде все правильно написано
SQL
1
2
3
4
5
6
7
SELECT
   CASE WHEN INSTR('ЗП', PO)>0
       THEN SUBSTR(PO, LENGTH(PO)-INSTR('ЗП',PO)+1)
       ELSE NULL
   END AfterText,
   PO
FROM Lyb4eg;
только не понимаю зачем в вашем запросе CAST.

покажите хотя бы для примера что получается?
0
KuKu
1559 / 1037 / 93
Регистрация: 17.04.2009
Сообщений: 2,995
18.01.2012, 08:53 13
Еще case when непонятно зачем и параметры у instr перепутаны местами.
0
turbanoff
Эксперт Java
4018 / 3753 / 741
Регистрация: 18.05.2010
Сообщений: 9,329
Записей в блоге: 11
Завершенные тесты: 1
18.01.2012, 09:34 14
да действительно, без case тоже будет работать.
SQL
1
2
3
SELECT SUBSTR(PO, LENGTH(PO)-INSTR(PO,'ЗП')+1) AfterText
     , PO
FROM Lyb4eg
0
Lubomyr
5 / 5 / 0
Регистрация: 22.12.2011
Сообщений: 121
19.01.2012, 15:45  [ТС] 15
Не будет, потому что 'ЗП' не всегда в строчке на одном и том же месте ....
Вот результат Вашего скрипта -
П256 | dccЗП256
256 |dcЗП256
cfЗП256| dcsdcfЗП256

Добавлено через 1 минуту
Цитата Сообщение от turbanoff Посмотреть сообщение
вроде все правильно написано
SQL
1
2
3
4
5
6
7
SELECT
   CASE WHEN INSTR('ЗП', PO)>0
       THEN SUBSTR(PO, LENGTH(PO)-INSTR('ЗП',PO)+1)
       ELSE NULL
   END AfterText,
   PO
FROM Lyb4eg;
только не понимаю зачем в вашем запросе CAST.

покажите хотя бы для примера что получается?

Ничего не получается (((..........
0
turbanoff
Эксперт Java
4018 / 3753 / 741
Регистрация: 18.05.2010
Сообщений: 9,329
Записей в блоге: 11
Завершенные тесты: 1
19.01.2012, 16:02 16
ух намудрили мы
SQL
1
2
3
4
5
6
7
8
9
10
WITH Lyb4eg AS (
    SELECT 'dccЗП256' PO FROM dual UNION ALL
    SELECT 'dcЗП256' FROM dual UNION ALL
    SELECT 'dcsdcfЗП256' FROM dual UNION ALL
    SELECT 'dcsdcfЗ256' FROM dual
) 
SELECT PO
     , substr(PO, 1, instr(PO,'ЗП')) BeforeText_Without_ZP
     , substr(PO, instr(PO,'ЗП')) AfterText_With_ZP
FROM Lyb4eg
1
Lubomyr
5 / 5 / 0
Регистрация: 22.12.2011
Сообщений: 121
19.01.2012, 16:17  [ТС] 17
СПАСИБО!!!!! Работает!!! Огромное спасибо!
0
19.01.2012, 16:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2012, 16:17

ORA-12154!
Пытаюсь подключиться к серву через PL/SQL developer и выдает эту ошибку(...

ORA-12154
ORA-12154: TNS:невозможно разрешить заданный идентификатор соединения Знаю...

ORA-1122
Всем привет, я программист по части 1с но у нас в конторе стоит база на Оракле,...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru