|
Подрезать строку VARCHAR2 при вносе в таблицу
|
|||
---|---|---|---|
#18+
Всем привет! Сегодня получил 500-символьное сообщение о внутренней ошибке Оракла, что довольно нечасто, похоже мне везет на них. Моя функция поймала exception, и при попытке записать в лог ошибок превысила размер одного из параметров (300). Код: plsql 1. 2. 3. 4.
Я могу сделать substr( p_msg, 1, 300 ), но потом изменится таблица, и надо будет об этом помнить.. Не прибегая к магическим числам, за которыми потом нужно следить, как лучше уместить длинные строки в таблицу? Например: - особый обрезающий инсерт, который подрежет все строчки вместо выкидывания с ошибкой, или - функция PL/SQL, которая возвращает максимальный размер колонки (или переменной, я умею ERROR_LOG.err_text%TYPE) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 03:13 |
|
Подрезать строку VARCHAR2 при вносе в таблицу
|
|||
---|---|---|---|
#18+
Совершенно незачем экономить сотни байт на записи. Видал проекты, где надо было журналировать и ситуацию, которая привела к ошибке, включая большие данные, там не парились и делали сразу CLOB в журнале. Актуальность журнала редко простирается дальше одного-двух лет. Тем более с современными объемами данных это копейки. Если очень хочется, можно exception when BIG_MESSAGE then insert into BIG_LOG. Размер колонок - в user_tab_columns. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 06:46 |
|
Подрезать строку VARCHAR2 при вносе в таблицу
|
|||
---|---|---|---|
#18+
dmdmdm, Я даже не подумал об этом. Предел табличной varchar2 - 4kb, и проблема решена.. Так и сделаю, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 06:55 |
|
Подрезать строку VARCHAR2 при вносе в таблицу
|
|||
---|---|---|---|
#18+
НеофитSQL dmdmdm, Я даже не подумал об этом. Предел табличной varchar2 - 4kb, и проблема решена.. Так и сделаю, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 08:58 |
|
Подрезать строку VARCHAR2 при вносе в таблицу
|
|||
---|---|---|---|
#18+
andreymx до Оракл-12/19 ты еще не добрался я чет даж пропустил что оно уже с 12-ки ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 09:54 |
|
Подрезать строку VARCHAR2 при вносе в таблицу
|
|||
---|---|---|---|
#18+
andreymx НеофитSQL dmdmdm, Я даже не подумал об этом. Предел табличной varchar2 - 4kb, и проблема решена.. Так и сделаю, спасибо. Не уверен, что вы хотите сказать, что в 12 увеличили максимальную длину поля varchar2 до 32кб в таблицах? Увеличение размера до 4000 (и ручная транкация по 4000 при вставке, на всякий случай) решило мою проблему. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 15:37 |
|
Подрезать строку VARCHAR2 при вносе в таблицу
|
|||
---|---|---|---|
#18+
andreymx до Оракл-12/19 ты еще не добрался не смотрел, как в 19, но в 12 лимит меняется необратимым alter system. мы при миграции долго думали, но в итоге не рискнули. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 15:51 |
|
Подрезать строку VARCHAR2 при вносе в таблицу
|
|||
---|---|---|---|
#18+
кит северных морей, почему не рискнули? вкратце, конечно, если можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 16:14 |
|
Подрезать строку VARCHAR2 при вносе в таблицу
|
|||
---|---|---|---|
#18+
K790 кит северных морей, почему не рискнули? вкратце, конечно, если можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 16:31 |
|
Подрезать строку VARCHAR2 при вносе в таблицу
|
|||
---|---|---|---|
#18+
K790 кит северных морей, почему не рискнули? вкратце, конечно, если можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 16:57 |
|
Подрезать строку VARCHAR2 при вносе в таблицу
|
|||
---|---|---|---|
#18+
xtender K790 кит северных морей, почему не рискнули? вкратце, конечно, если можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 17:06 |
|
|
start [/forum/topic.php?fid=52&fpage=36&tid=1880849]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 333ms |
total: | 457ms |
0 / 0 |