Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Return переменной вызывает ORA-03113  [new]
Gustly
Member

Откуда:
Сообщений: 1426
Добрый день. Пытаюсь сделать следующий запрос
update TABLE set col=1 where id=119 return updated into :p1
После несколько секунд вываливается ORA-03113(end-of-file on communication channel), поле это типа DATE, если вытаскивать например поле типа VARCHAR2, то все нормально.

База 10-й версии, клиент 11-й. На других компьютерах 9-я версия клиент работает, но надо чтобы и 11-й работал, ума не приложу в чем может быть причина, посоветуйте что-нибудь.
14 ноя 12, 10:30    [13469638]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
В alert.log что-нибудь есть?
14 ноя 12, 10:34    [13469664]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
Gustly
Member

Откуда:
Сообщений: 1426
tru55
В alert.log что-нибудь есть?

А где он лежит? Сейчас попробовал вытащить поле DATE из другой таблицы, получилось. Что-то с таблицей получается что-ли.
14 ноя 12, 10:37    [13469690]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
Gustly
tru55
В alert.log что-нибудь есть?

А где он лежит?

SELECT *
FROM v$parameter
ORDER BY name

background_dump_dest
14 ноя 12, 10:39    [13469708]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
Gustly
Member

Откуда:
Сообщений: 1426
[quot tru55]
Gustly
пропущено...

[/src]
background_dump_dest

У меня нету туда доступа, я не админ. Еще одно уточнение. Делаю return другого ПОЛЯ той же таблицы тоже типа DATE, нормально, данные заполнены и там и там.
14 ноя 12, 10:43    [13469731]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
-2-
Member

Откуда:
Сообщений: 15330
попробуй "UPDATED"+0 into ...
Gustly
У меня нету туда доступа, я не админ.
достаточно select_catalog_role.
14 ноя 12, 11:19    [13470002]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
Dgordeenko
Member

Откуда: Серпухов-Подольск-Москва
Сообщений: 216
Ну покажите определение проблемной таблицы и определение не проблемной таблицы.
Сделайте тесткейс тем же sqlplus'ом, как вариант...

А то может у вас там в одной таблице timestamp на самом деле, а не date.
14 ноя 12, 11:29    [13470100]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
Gustly
Member

Откуда:
Сообщений: 1426
-2-
попробуй "UPDATED"+0 into ...
Gustly
У меня нету туда доступа, я не админ.
достаточно select_catalog_role.

Достаточно было поставить "UPDATED", и сразу заработало. Странный баг, слово UPDATED нельзя возвращать. А что за select_catalog_role?
14 ноя 12, 11:30    [13470114]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Gustly
-2-
попробуй "UPDATED"+0 into ...
пропущено...
достаточно select_catalog_role.

Достаточно было поставить "UPDATED", и сразу заработало. Странный баг, слово UPDATED нельзя возвращать. А что за select_catalog_role?

никакой это не баг.
думать надо, как прикладные объекты (и их элементы) называть.
SQL> select * from obj
  2  where object_name like '%RESER%'
  3
SQL>
SQL> select keyword
  2    from sys.v_$reserved_words
  3   where keyword like 'UPD%';

KEYWORD
------------------------------
UPDATEXML
UPD_INDEXES
UPDATED
UPD_JOININDEX
UPDATE
UPDATABLE

6 строк выбрано.
14 ноя 12, 13:41    [13471704]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
а_почему
Guest
orawish
думать надо, как прикладные объекты (и их элементы) называть.

а как же тогда утверждение автора, что на 9х клиентах у него работает все?
14 ноя 12, 15:02    [13472514]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
а_почему
orawish
думать надо, как прикладные объекты (и их элементы) называть.

а как же тогда утверждение автора, что на 9х клиентах у него работает все?

а никак. нравится пальцы совать в розетку - ну и суйте. если где-то раз-другой и не долбануло - ничего это не гарантирует.
про dml триггеры почитайте, если забыли что такое и откуда есть пошел updated .
14 ноя 12, 15:30    [13472875]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
Gustly
Member

Откуда:
Сообщений: 1426
А теперь продожение темы. Делаю апдейт с подстановкой.

str=[update TABLE set year=?nYear where id=?nID return "UPDATED" into ?@u201.updated]
Дисконектит через 5 секунд.

str=[update TABLE set year=?nYear where id=]+nID+[ return "UPDATED" into ?@u201.updated]
Работает.

Почему?!
14 ноя 12, 15:34    [13472928]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Gustly
А теперь продожение темы. Делаю апдейт с подстановкой.

str=[update TABLE set year=?nYear where id=?nID return "UPDATED" into ?@u201.updated]
Дисконектит через 5 секунд.

str=[update TABLE set year=?nYear where id=]+nID+[ return "UPDATED" into ?@u201.updated]
Работает.

Почему?!

потому, что в документации - там, где про object naming rules, написано (примерно):
кто использует всуе зарезервированные ораклом слова - тот и сам му..к и оракл ему ничего не должен
14 ноя 12, 15:43    [13473058]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10045
Gustly
Почему?!


Оракл поддерживет unquoted и quoted (заключенные в двойные кавычки) names. Когда Оракл находит unquoted идентификатор он должен оределить что это. И если "это" совппдает с резервным словом то естественно он решает что это не есть name. A когда "это" заключенo в двойные кавычки то все ясно - это name.

SY.

Сообщение было отредактировано: 14 ноя 12, 15:51
14 ноя 12, 15:49    [13473134]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
Gustly
Member

Откуда:
Сообщений: 1426
orawish
Gustly
А теперь продожение темы. Делаю апдейт с подстановкой.

str=[update TABLE set year=?nYear where id=?nID return "UPDATED" into ?@u201.updated]
Дисконектит через 5 секунд.

str=[update TABLE set year=?nYear where id=]+nID+[ return "UPDATED" into ?@u201.updated]
Работает.

Почему?!

потому, что в документации - там, где про object naming rules, написано (примерно):
кто использует всуе зарезервированные ораклом слова - тот и сам му..к и оракл ему ничего не должен

Да с кавычками разобрались. Вопрос почему относился не к ним, а к привязке. Почему с привязкой переменной в WHERE оракл меня дисконектит?
14 ноя 12, 16:43    [13473608]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54383
Gustly,

выложи строку ПОСЛЕ подстановки
14 ноя 12, 17:07    [13473772]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
-2-
Member

Откуда:
Сообщений: 15330
полагаю "?" это бинд для парсера уровня драйвера над ораклом, только вряд ли этот парсер лояльно относится правилам именования языка верхнего уровня. в резульате в оракл отравляется после бинды ".updated" или вообще "@u201.updated".
14 ноя 12, 17:18    [13473847]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51778

Gustly
Почему с привязкой переменной в WHERE оракл меня дисконектит?

Он тебя не дисконнектит. Процесс, обслуживающий твою сессию - падает. А дисконнект это уже
так, вторичное последствие...

Posted via ActualForum NNTP Server 1.5

14 ноя 12, 17:29    [13473896]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
Gustly
Member

Откуда:
Сообщений: 1426
andreymx
Gustly,

выложи строку ПОСЛЕ подстановки

В консоли оракла выглядит вот так
update TABLE set year=:1 ,kolvo=:2 where id=:3 return "UPDATED","UPDATEDBY" into :4 ,:5 ,:6 ,:7

Подстановка идет во время выполнения запроса, но если навести курсор на переменную подстановки nid, то она равна числу 122

update TABLE set year=?nYear,kolvo=?nKolvo where id=?nid return "UPDATED","UPDATEDBY" into ?@u201.updated,?@u201.updatedby
15 ноя 12, 08:48    [13476086]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54383
Две переменные возвращаешь в четыре
15 ноя 12, 09:01    [13476118]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
Gustly
Member

Откуда:
Сообщений: 1426
andreymx
Две переменные возвращаешь в четыре

Забыл убрать, там просто много полей возвращается. НО суть в том, что есть id=122 константой, то работает, если id=:3, то не работает.
15 ноя 12, 09:12    [13476140]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
Gustly
Member

Откуда:
Сообщений: 1426
Попробовал разные галочки убрать/поставить в настройках ODBC, не помогло, апдейт с ретурном и привязкой в условие WHERE не проходит и сессия умирает даже без ошибки.
16 ноя 12, 08:53    [13481716]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
Gustly
Member

Откуда:
Сообщений: 1426
tru55
В alert.log что-нибудь есть?

+
/ora_ias/oracle/admin/BSD/udump/BSD_ora_15088.trc

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production

With the Partitioning, Oracle Label Security and Data Mining options

ORACLE_HOME = /ora_ias/oracle/product/10.2.0

System name: HP1

Node name: s001p1

Release: B.11.23

Version: U

Machine: ia64

Instance name: BSD

Redo thread mounted by this instance: 1

Oracle process number: 480

Unix process pid: 15088, image: oracleBSD@s001p1



*** SERVICE NAME:(SYS$USERS) 2012-12-04 12:27:15.832

*** SESSION ID:(982.16790) 2012-12-04 12:27:15.832

*** 2012-12-04 12:27:15.832

ksedmp: internal or fatal error

ORA-00600: M-*M-.M-$ M-"M--M-cM-bM-`. M-.M-hM-(M-!M-*M-(, M- M-`M-#M-cM-,M-%M--M-bM-k: [12333], [7], [120], [112], [], [], [], []

Current SQL statement for this session:

update TEST_TABLE set year=:1 ,kolvo=:2 ,doc_num=:3 ,doc_date=:4 ,GAZ=:5 ,Gaz_name=:6 ,expire=:7 ,note=:8 ,PR1=:9 ,user=:10 where idp=:11 return "UPDATED","UPDATEDBY","PRODUCE_DATE","PRODU

CE_USER" into :12 ,:13 ,:14 ,:15

----- Call Stack Trace -----

calling call entry argument values in hex

location type point (? means dubious value)

-------------------- -------- -------------------- ----------------------------

ksedst()+64 call ksedst1() 000000000 ? 000000001 ?

ksedmp()+1680 call ksedst() 000000000 ?

C000000000000D20 ?

40000000050BACB0 ?

000000000 ? 000000000 ?

000000000 ?

ksfdmp()+48 call ksedmp() 000000003 ?

kgeriv()+432 call ksfdmp() 40000000091E6730 ?

000000003 ?

C000000000000695 ?

00000C10F ? 000000000 ?

000000000 ? 000000000 ?

000000000 ?

kgesiv()+176 call kgeriv() 6000000000015190 ?

6000000000016248 ?

600000000010D868 ?

6000000000013770 ?

9FFFFFFFFFFFA9C8 ?

ksesic3()+192 call kgesiv() 6000000000015190 ?

9FFFFFFFBF562160 ?

00000302D ? 000000003 ?

9FFFFFFFFFFFA9C8 ?

$cold_opitsk()+8800 call ksesic3() 00000302D ?

6000000000114F60 ?

9FFFFFFFFFFFA9C8 ?

6000000000115630 ?

000000078 ? 000000000 ?

000000070 ?

9FFFFFFFFFFFB148 ?

Вот лог ошибки, понятного мало, но есть ORA-00600, что с ней делать пока непонятно.
6 дек 12, 10:10    [13585784]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
Mit
Member

Откуда: Мытищи
Сообщений: 819
10.2.0.1.0

может попробовать для начала обновиться на 10.2.0.5?
6 дек 12, 10:55    [13586127]     Ответить | Цитировать Сообщить модератору
 Re: Return переменной вызывает ORA-03113  [new]
-2-
Member

Откуда:
Сообщений: 15330
попробу написать не return ... into ..., а returnING. может биндование косячит.
6 дек 12, 10:59    [13586169]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить