|
|
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
Доброго дня! Есть процедура записи содержимого файла в базу. Первоначально проект разрабатывался на DOA-шных компонентах и там все работает отлично. Но реалии заставили юзать ODAC и тут вылезла указанная ошибка. Вот кусок кода, который делает запись: Код: pascal 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. 39. 40. 41. 42. 43. 44. 45. 46. Поискал решение в инете, нашел что-то похожее на Devart-овском форуме . Но вариант Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. выдает ошибку "ORA-01400: cannot insert NULL into ("FGV0"."FGV_BLOB"."BLOB_FILE")" Использую прямой доступ к базе, версия 12 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2019, 19:03 |
|
||
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
Ты создаёшь LOB в DefSession, а вызываешь процедуру с ним в Session. Уверен, что они совпадают? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2019, 19:23 |
|
||
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
Леонов Юрий, ниже приведен пример работы с BOLB полями в процедуре Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Код: pascal 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. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2019, 09:12 |
|
||
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТы создаёшь LOB в DefSession, а вызываешь процедуру с ним в Session. Уверен, что они совпадают? это одна и та же сессия, куски из разных модулей взяты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2019, 10:02 |
|
||
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
devart, Процедуру в базе трогать нет смысла, она работала на других компонентах. А читать файл произвольной длины в массив байтов не улыбается. Зачем вам тогда тип TOraLob? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2019, 10:09 |
|
||
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
devart Код: pascal 1. 2. 3. 4. 5. 6. Разве Prepare не определяет автоматом тип данных и тип параметра? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2019, 10:12 |
|
||
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
Леонов Юрий, Приведите DDL процедуры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2019, 10:45 |
|
||
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
devartЛеонов Юрий, Приведите DDL процедуры Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2019, 11:00 |
|
||
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
Леонов Юрий, Если в процедуре не используется EMPTY_BLOB, то Вам необходимо включить опцию TemporaryLobUpdate, P.S. массив байт взят для примера Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2019, 11:09 |
|
||
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
devart Код: pascal 1. 2. 3. Обязательно такое приведение делать (AsOraBlob.AsBytes) или же можно передать TOraLob? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2019, 11:22 |
|
||
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
Сделал так Код: pascal 1. ошибка осталась как в заголовке поста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2019, 11:29 |
|
||
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
Леонов Юрий, Приведение AsBytes необязательно, Вы можете передавать TOraLob, использовать StoredProc.ParamByName('A_BLOB').AsOraBlob.LoadFromFile и т.д. Ошибка ORA-64219 указывает на некорректный Lob locator. При использовании одного и того же соединения ошибка не возникает. Код: pascal 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. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2019, 12:36 |
|
||
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
devartЛеонов Юрий, Ошибка ORA-64219 указывает на некорректный Lob locator. При использовании одного и того же соединения ошибка не возникает. То есть, Lob locator создается в одной сессии, а процедура вызывается в другой? Я правильно понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2019, 16:50 |
|
||
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
сделал так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Ошибка та же. То есть я уже не использую TOraLob, но от ошибки я не избавляюсь Если же убираю из кода Код: pascal 1. то ошибка другая - ORA-01400: cannot insert NULL into ("FGV0"."FGV_BLOB"."BLOB_FILE") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2019, 17:05 |
|
||
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
Леонов Юрий, Приведенный консольный пример выдает ошибки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2019, 17:12 |
|
||
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
devart, Да, не знает кто такой FileName и бьет ошибку при компиляции на строке Код: pascal 1. 2. Тут вот что интересно. У меня DefSession - это общая сессия для всех моих форм, пользовательский объект. И у вас есть точно такой же объект (модуль Ora.pas). Видно они как-то конфликтуют между собой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2019, 17:44 |
|
||
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
Леонов Юрий, укажите имя любого существующего файла program Project201; {$APPTYPE CONSOLE} {$R *.res} uses SysUtils, Windows, DB, Ora, OraError, OraClasses; var Session: TOraSession; StoredProc: TOraStoredProc; procedure GetStoreProc; begin StoredProc.Session := Session; StoredProc.StoredProcName := ''; StoredProc.Prepared; end; procedure InsertBlob_1164(PBlob: TOraLob); begin GetStoreProc; StoredProc.StoredProcName := 'SP_INSERT_BLOB'; StoredProc.Prepare; StoredProc.ParamByName('A_ID').AsInteger := GetTickCount; StoredProc.ParamByName('A_BLOB').AsOraBlob := PBlob; StoredProc.Execute; end; procedure LoadFilePO; var LLob: TOraLob; begin try LLob := TOraLob.Create(Session.OCISvcCtx); LLob.CreateTemporary(ltBlob); LLob.LoadFromFile({УКАЗАТЬ ЛЮБОЕ ИМЯ ФАЙЛА С ПОЛНЫМ ПУТЕМ}); try InsertBlob_1164(LLob); DefSession.Commit; except on E: Exception do begin DefSession.Rollback; end; end; finally FreeAndNil(LLob); end; end; begin try Session := TOraSession.Create(nil); try Session.ConnectString := 'server=oracle12c.local;sid=orclpdb.local;direct=true;user=****;password=****'; Session.Connect; StoredProc := TOraStoredProc.Create(nil); LoadFilePO; finally Session.Free; end; except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; readln; end. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2019, 17:48 |
|
||
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
devart, Код: pascal 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. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. Выполняю с подключением к базе 11g - все нормально. Выполняю подключение к 12с - ошибка. Клиент стоит на машине только 11-й, в идеале не должно стоять ни одного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 12:03 |
|
||
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
Леонов Юрий, уточните версию ODAC, похожая ситуация при работе с LOB полями в Oracle 12 и 18 была исправлена в версии ODAC 10.2.7. P.S. Если у Вас версия ODAC ниже, пожалуйста обновите наши компоненты до последней версии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 12:15 |
|
||
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
devart, да, версия 10.1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 12:33 |
|
||
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
Леонов Юрий, обновите до последней версии и проверьте это поведение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 12:35 |
|
||
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
devartЛеонов Юрий, обновите до последней версии и проверьте это поведение Последняя это уже 10.3.9 насколько я понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 13:00 |
|
||
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
devartпохожая ситуация при работе с LOB полями в Oracle 12 и 18 И в чём там была проблема? Что-то изменилось в LOB-функциях в этих версиях Оракула? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 13:06 |
|
||
|
ORA-64219: invalid LOB locator encountered
|
|||
|---|---|---|---|
|
#18+
Леонов ЮрийdevartЛеонов Юрий, обновите до последней версии и проверьте это поведение Последняя это уже 10.3.9 насколько я понял? да, верно Dimitry Sibiryakovdevartпохожая ситуация при работе с LOB полями в Oracle 12 и 18 И в чём там была проблема? Что-то изменилось в LOB-функциях в этих версиях Оракула? в функциях ничего не изменилось, а вот формат пакетов в протоколе немного поменялся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 13:53 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39782892&tid=2039688]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
183ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
85ms |
get tp. blocked users: |
2ms |
| others: | 261ms |
| total: | 587ms |

| 0 / 0 |
