У меня есть обратный вызов AJAX, который извлекает значение CLOB из таблицы.
DECLARE
L_CLOB CLOB;
BEGIN
SELECT LOG
INTO L_CLOB
FROM TAB1
WHERE COL1 = apex_application.g_x01;
htp.p(L_CLOB);
END;
Однако, когда CLOB слишком велик, он возвращает
ORA-06502: PL/SQL: numeric or value error
Почему это происходит?
1 ответ
Если вы используете пакет APEX_JSON , вы можете вернуть CLOBS. Пакет htp.p не поддерживает вывод CLOB, если вы хотите его использовать, вам нужно разделить CLOB на более мелкие фрагменты VARCHAR2.
Использование пакета APEX_JSON намного удобнее, вы можете просто передать CLOB в качестве параметра в процедуру записи:
apex_json.open_object;
apex_json.write('mydata', MY_CLOB);
apex_json.close_object;
Если вы поместите это в процедуру обратного вызова AJAX на странице, а затем используете этот Javascript для ее вызова:
apex.server.process(
'MY_AJAX_PROCEDURE', // Process or AJAX Callback name
{}, //No Parameters
{
success: function (pData) {
console.log(pData); //The Data will be logged into the console
}
}
);
Вы увидите свои данные CLOB в консоли. Вы также можете делать с ним все остальное.
Похожие вопросы
Новые вопросы
oracle
Oracle Database - это многомодельная система управления базами данных, созданная корпорацией Oracle. НЕ используйте этот тег для других продуктов, принадлежащих Oracle, таких как Java и MySQL.