PLP-BAD_STRING: Неверный размер строки
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пн Янв 19, 2015 12:17  PLP-BAD_STRING: Неверный размер строки |
|
Полезность: Нет оценки
|
Стролкнулся с такой ошибкой при компиляции. Что это и куда копать?
При закоммент. некоторых селектов операция компилится нормально - но селекты самые обычные - from VW...%rowtype . |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Вт Янв 20, 2015 07:14  Re: PLP-BAD_STRING: Неверный размер строки |
|
Полезность: 1
|
Volod пишет: | Стролкнулся с такой ошибкой при компиляции. Что это и куда копать?
При закоммент. некоторых селектов операция компилится нормально - но селекты самые обычные - from VW...%rowtype . |
Это у Вас на plsql-вставки так ругается?
И pl/sql-вставка, и комментарий, являются неделимым блоком. Поэтому размещаются в одну переменную.
ограничения на строковые переменные Oracle вы знаете.
совет 1. избавьтесь от pl/sql-вставок. Пишите на PL/PLUS.
совет 2. Если не получается избавиться, где-нибудь посередине pl/sql-вставки вставьте
Код: | --end pl/sql
-- begin pl/sql
|
|
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Вт Янв 20, 2015 09:12   |
|
Полезность: Нет оценки
|
Во-первых, извините, не туда запостил.
Во-вторых, нашел, в чем проблема. Во вьюхе некоторые поля были инициированы null - это почему-то не нравилось компилятору.
Код: | ...
,Null : c_name_org
,Null : c_bank_inn
,Null : c_bank_kpp
... |
|
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Вт Янв 20, 2015 09:22   |
|
Полезность: Нет оценки
|
Volod пишет: | Во-первых, извините, не туда запостил.
Во-вторых, нашел, в чем проблема. Во вьюхе некоторые поля были инициированы null - это почему-то не нравилось компилятору.
Код: | ...
,Null : c_name_org
,Null : c_bank_inn
,Null : c_bank_kpp
... |
|
А, да...
Есть такая проблема.
Лично я нашёл решение только одно:
Код: |
, (select x(x.[поле подходящего размера]) in ::[где-то там] where rownum < 1) :c_name_org
|
|
|
 |
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Вт Янв 20, 2015 09:38   |
|
Полезность: Нет оценки
|
Random пишет: |
Лично я нашёл решение только одно:
Код: |
, (select x(x.[поле подходящего размера]) in ::[где-то там] where rownum < 1) :c_name_org
|
|
cast_to( [ла-ла], NULL) в этом случае не подходит?
ps:Сам не проверял, но посоветовать - завсегда  |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Вт Янв 20, 2015 09:42   |
|
Полезность: Нет оценки
|
Damir пишет: | Random пишет: |
Лично я нашёл решение только одно:
Код: |
, (select x(x.[поле подходящего размера]) in ::[где-то там] where rownum < 1) :c_name_org
|
|
cast_to( [ла-ла], NULL) в этом случае не подходит?
ps:Сам не проверял, но посоветовать - завсегда  |
не-а.
Проблема не в типе, а в том, что в результате в соответствующем длине поле в criteria_columns записывается 0. 0 в данном случае - нонсенс, поле предназначено для вывода информации и иметь 0-й размер не должно, иначе нафига такое поле нужно
Вот и приходится выкручиваться. |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Вт Янв 20, 2015 10:03   |
|
Полезность: Нет оценки
|
Зачемана насяльника выводит NULL ?
Как вы себе это представляете? Выводите тогда уж ' ' |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Вт Янв 20, 2015 12:03   |
|
Полезность: Нет оценки
|
yaffil пишет: | Зачемана насяльника выводит NULL ?
Как вы себе это представляете? Выводите тогда уж ' ' |
тот же null, вид сбоку.
Парсер у нас шибко умный, null определяет почти завсегда. Пока что только определять невыполнимое условие ещё не научился.
Когда научится - можно будет вешаться. |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Вт Янв 20, 2015 12:12   |
|
Полезность: Нет оценки
|
Как тот же то?
Нул (тип) и символ пробела (текст) всю жизнь были разными вещами. |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Вт Янв 20, 2015 13:50   |
|
Полезность: Нет оценки
|
yaffil пишет: | Как тот же то?
Нул (тип) и символ пробела (текст) всю жизнь были разными вещами. |
У тебя там пробел? Ох, ёлки... Извини, не заметил  |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|