1) Отключение запроса пароля APPS при вызове диагностики или проверки.
Установите следующие системные профили в полномочиях системного администратора
Профиль |
Значение |
FND: Diagnostics |
Yes |
Hide Diagnostics menu entry |
No |
Utilities:Diagnostics |
Yes |
Читать дальше про “OEBS Полезные системные профили” »
select USERENV('LANG') from dual;
alter session set NLS_LANGUAGE = 'AMERICAN' ;
alter session set NLS_LANGUAGE = 'RUSSIAN' ;
Для OEBS есть API
begin
fnd_global.set_nls_context('AMERICAN');
--fnd_global.set_nls_context('RUSSIAN');
end;
Вместо использования COMMIT_FORM вызвать свою процедуру
-- Отключает стандартное сообщение формы
PROCEDURE MY_COMMIT IS
x_message_level number;
BEGIN
x_message_level := :SYSTEM.MESSAGE_LEVEL;
:SYSTEM.MESSAGE_LEVEL := '5';
COMMIT_FORM;
:SYSTEM.MESSAGE_LEVEL := x_message_level;
END;
with t as (
select 'есть длинная строка - которую нужно разбить на строчки по сто символов.'
|| 'Но слова разбивать нельзя, переносить нужно по '
||rpad('qwerty',110,'o')||'абвгд' as s from dual
)
select trim(regexp_substr(s,'(.{0,99}(\s|$))|[^[:space:]]{100}',1,level))
from t
CONNECT BY
regexp_substr(s,'(.{0,99}(\s|$))|[^[:space:]]{100}',1,level) is not null;
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0
Connected as apps
SQL> with t as (
2 select 'есть длинная строка - которую нужно разбить на строчки по сто символов.'
3 || 'Но слова разбивать нельзя, переносить нужно по '
4 ||rpad('qwerty',110,'o')||'абвгд' as s from dual
5 )
6 select trim(regexp_substr(s,'(.{0,99}(\s|$))|[^[:space:]]{100}',1,level)) as str
7 from t
8 CONNECT BY
9 regexp_substr(s,'(.{0,99}(\s|$))|[^[:space:]]{100}',1,level) is not null;
STR
--------------------------------------------------------------------------------
есть длинная строка - которую нужно разбить на строчки по сто символов.Но слова
переносить нужно по
qwertyoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
ooooooooooабвгд
Для строки «asdfdasf,abs@dev, sdfasdf» надо найти вхождение «abs@» и заменить на «abs@fn», но только в том случае, если перед вхождением запятая или пробел.
select regexp_replace(str, '([, ]abs@)', '\1fn') as val
from (select 'aabs@sdfdasf,abs@dev, sd abs@fasdf' str from dual)
--
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0
Connected as apps
SQL> select regexp_replace(str, '([, ]abs@)', '\1fn') as val
2 from (select 'aabs@sdfdasf,abs@dev, sd abs@fasdf' str from dual);
VAL
--------------------------------------
aabs@sdfdasf,abs@fndev, sd abs@fnfasdf
SQL>
Для удобного доступа к логу и xml канкарента, можно использовать следующий запрос
SELECT get_log_bfile('l' || x.request_id || '.req') as log_date,
get_xml_bfile('o' || x.request_id || '.out') as xml_date
FROM fnd_concurrent_requests x
WHERE x.request_id = :p_request_id
Но перед его использованием следует создать директории для доступа к файлам:
create or replace directory CUNCURRENT_XML
as '/oracle/NAME_INSTANCE/inst/apps/NAME/logs/appl/conc/out';
create or replace directory CUNCURRENT_LOG
as '/oracle/NAME_INSTANCE/inst/apps/NAME/logs/appl/conc/log';
и сами функции
create or replace function get_log_bfile(p_filename in varchar2)
return bfile as
l_bfile bfile := bfilename('CUNCURRENT_LOG',p_filename);
begin
return l_bfile;
end;
/
create or replace function get_xml_bfile(p_filename in varchar2 )
return bfile as
l_bfile bfile := bfilename('CUNCURRENT_XML',p_filename);
begin
return l_bfile;
end;
/
Регулярные выражения произошли из теорий автоматов и формальных языков, поэтому поначалу производят устрашающее впечатление. Однако, их базовые понятия являются простыми и в то же время мощными.
Начиная с версии Oracle 10g регулярные выражения можно использовать напрямую в SQL запросах.
Шаблон регулярных выражений выражается в виде строки, содержащей следующие конструкции:
- Литеральные символы. Фактические символы, которые следует искать (Например, шаблон xyz соответствует только вхождению «xyz»)
- Метасимволы. Операции, определяющие алгоритмы, которые должны применяться во время поиска (Например, шаблон ^xyz соответсвует только строке, начинающейся с «xyz» — другие вхождения не учитываются)
Читать дальше про “Регулярные выражения Oracle (regular expression)” »
select column_value from TABLE (sys.odcinumberlist(1,2,3,4,5));
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0
Connected as apps
SQL> select column_value as val from TABLE (sys.odcinumberlist(1,2,3,4,5));
VAL
----------
1
2
3
4
5
SQL>
-- Вывод сообщения в лог
procedure output_log_data(p_log_str in varchar2) is
g_output_dbms number := 1; -- Вывод сообщений в dbms_output.put_line
g_output_oebs number := 2; -- Вывод сообщений в fnd_file.put_line
v_output_current number := g_output_oebs;
begin
if fnd_global.conc_request_id = -1 then
v_output_current := g_output_dbms;
end if;
if v_output_current = g_output_dbms then
dbms_output.put_line(p_log_str);
elsif v_output_current = g_output_oebs then
--fnd_file.put_line(fnd_file.output, p_log_str); --Строка выводится в "Просмотр Результатов"
fnd_file.put_line(fnd_file.log, p_log_str); --Строка выводится в "Просмотр Журнала"
end if;
end output_log_data;
Последние комментарии