Довольно удобно выставлять профили через скрипт, особенно если их много.
Данный скрипт выставляет профили на уровне пользователя.
DECLARE
l_user_name varchar2(100) := 'USER_NAME';
PROCEDURE set_profile_at_user_level(p_user_name fnd_user.user_name%TYPE,
p_user_profile_option_name fnd_profile_options_vl.user_profile_option_name%TYPE,
p_profile_option_value fnd_profile_option_values.profile_option_value%TYPE) IS
l_user_id fnd_user.user_id%TYPE;
l_profile_option_name fnd_profile_options_vl.profile_option_name%TYPE;
BEGIN
SELECT fu.user_id
INTO l_user_id
FROM fnd_user fu
WHERE fu.user_name = p_user_name;
SELECT fpo.profile_option_name
INTO l_profile_option_name
FROM fnd_profile_options_vl fpo
WHERE fpo.user_profile_option_name = p_user_profile_option_name;
IF Fnd_Profile.save(x_name => l_profile_option_name,
x_value => p_profile_option_value,
x_level_name => 'USER',
x_level_value => l_user_id) THEN
NULL;
END IF;
END set_profile_at_user_level;
BEGIN
EXECUTE IMMEDIATE 'ALTER session SET NLS_LANGUAGE=''RUSSIAN''';
set_profile_at_user_level (l_user_name, 'ВЕБ: время ожидания для сеанса','3600000');
set_profile_at_user_level (l_user_name, 'ВЕБ: форматная маска даты','DD-MM-RRRR');
set_profile_at_user_level (l_user_name, 'Служебные программы: диагностика','Y');
set_profile_at_user_level (l_user_name, 'Цветовая схема Java','SWAN');
set_profile_at_user_level (l_user_name, 'Настройка веб-определений','Y');
set_profile_at_user_level (l_user_name, 'БОП: диагностика','Y');
set_profile_at_user_level (l_user_name, 'БОП: активизация ссылки области индивидуальной настройки', 'Y');
set_profile_at_user_level (l_user_name, 'БОП: режим встраивания индивидуальной настройки','Y');
COMMIT;
END;
SELECT fpo.profile_option_name
,fpo.user_profile_option_name
,fpov.profile_option_value
FROM fnd_profile_option_values fpov,
fnd_profile_options_vl fpo
WHERE fpov.application_id = fpo.application_id
AND fpov.profile_option_id = fpo.profile_option_id
AND fpov.level_value = (
SELECT fu.user_id
FROM fnd_user fu
WHERE fu.user_name = '!!!USER_NAME'
)
Select t.organization_id as org_id,
mpv.organization_code as org_code,
t.name as org_name
From hr.hr_all_organization_units t,
mtl_parameters_view mpv
where mpv.organization_id = t.organization_id
order by t.organization_id, mpv.organization_code
select distinct
o.object_name,
sh.username || '(' || sh.sid || ',' || sh.serial# || ')' Holder,
sh.osuser,
sw.username || '(' || sw.sid || ',' || sw.serial# || ')' Waiter,
decode(lh.lmode,
1,'null',
2,'row share',
3,'row exclusive',
4,'share',
5,'share row exclusive',
6,'exclusive') Lock_Type
from v$session sw,
v$lock lw,
all_objects o,
v$session sh,
v$lock lh
where lh.id1 = o.object_id
and lh.id1 = lw.id1
and sh.sid = lh.sid
and sw.sid = lw.sid
and sh.lockwait is null
and sw.lockwait is not null
and lh.type = 'TM'
and lw.type = 'TM'
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>
Последние комментарии