OAF Standard CSS Introduction
OraDataNumber
Пример отображения стиля |
OraPromptText
Пример отображения стиля |
OraDataNumber
Пример отображения стиля |
OraPromptText
Пример отображения стиля |
declare vr_Form_name VARCHAR2(100) := 'XX_NAME'; vr_Description VARCHAR2(200) := 'XX_DESCRIPTION'; begin -- Регистрация функции формы fnd_form_functions_pkg.load_row ( x_function_name => vr_Form_name , x_application_short_name => 'FND' , x_form_name => 'FNDRSRUN' , x_parameters => 'CONCURRENT_PROGRAM_NAME="'||vr_Form_name ||'" PROGRAM_APPL_SHORT_NAME="'||'XX' ||'" TITLE="'||vr_Description||'"' , x_type => 'FORM' , x_web_host_name => NULL , x_web_agent_name => NULL , x_web_html_call => NULL , x_web_encrypt_parameters => NULL , x_web_secured => NULL , x_web_icon => NULL , x_object_name => NULL , x_region_application_name => NULL , x_region_code => NULL , x_user_function_name => vr_Description , x_description => vr_Description , x_owner => 'INITIAL SETUP' , x_custom_mode => 'FORCE' ); -- Регистрация пункта меню fnd_menu_entries_pkg.load_row ( x_mode => 'REPLACE' , x_ent_sequence => 910 , x_menu_name => 'MENU_NAME' , x_sub_menu_name => NULL , x_function_name => vr_Form_name , x_grant_flag => 'Y' , x_prompt => vr_Description , x_description => vr_Description , x_owner => USER ); -- COMMIT; EXCEPTION WHEN OTHERS THEN dbms_output.put_line(substr('Error: ' || SQLERRM, 1, 255)); ROLLBACK; end; / SHOW ERRORS
declare l_user_id number; l_responsibility_key fnd_responsibility.responsibility_key%TYPE := 'SYSTEM_ADMINISTRATOR'; l_application_short_name fnd_application.application_short_name%TYPE := 'SYSADMIN'; l_responsibility_id number; l_application_id number; l_responsibility_name varchar2(200) := 'System Administrator'; l_security_group_id number := 0; begin l_user_id := fnd_user_pkg.CreateUserId( x_user_name => 'TEST' , x_owner => 'CUST' , x_unencrypted_password => '123456' ); select application_id into l_application_id from fnd_application where application_short_name = l_application_short_name; select responsibility_id into l_responsibility_id from fnd_responsibility where application_id = l_application_id and responsibility_key = l_responsibility_key; fnd_user_resp_groups_api.insert_assignment( user_id => l_user_id , responsibility_id => l_responsibility_id , responsibility_application_id => l_application_id , security_group_id => l_security_group_id , start_date => trunc(sysdate) , end_date => NULL , description => l_responsibility_name ); fnd_wf_engine.default_event_raise( 'oracle.apps.fnd.security.user.assignment.change' , l_user_id || ':' || l_responsibility_id ); fnd_wf_engine.propagate_user_role( 'FND_USR' , l_user_id , 'FND_RESP' || l_application_id , l_responsibility_id , trunc(sysdate) , NULL ); -- Added for Function Security Cache Invalidation Project fnd_function_security_cache.insert_user_resp( l_user_id , l_responsibility_id , l_application_id ); commit; end;
with t as ( select 1 id, 'a s sfd' info from dual union all select 2 id, 'a b; g;g ;g f' info from dual union all select 3 id, 'a ' info from dual union all select 4 id, ' ' info from dual ) SELECT id, REGEXP_REPLACE(TRIM(info), ' *', ' ') AS info_new FROM t ORDER BY id;
Пример:
ID INFO_NEW ---------- -------------------------------------------------------------------------------- 1 a s sfd 2 a b; g;g ;g f 3 a 4
Для того чтобы разбить строку на подстроки, используя разделитель «;», можно воспользоваться следующим запросом.
Разделитель, конечно, может быть разный.
SQL> SELECT regexp_substr(str, '[^;]+', 1, level) str 2 FROM ( 3 SELECT ' 1; 2; test1.' str FROM dual ) t 4 CONNECT BY instr(str, ';', 1, level - 1) > 0 5 ; STR ------------- 1 2 test1.
Если хотим разбить на слова используя в виде разделителя пробел, то можно использовать perl синтаксис:
SQL> SELECT regexp_substr(str, '\S+', 1, level) str 2 FROM ( 3 SELECT ' 1 2 test1.' str FROM dual ) t 4 connect by regexp_substr(str,'\S+',1,level) is not null 5 ; STR ----------- 1 2 test1.
Другие примеры…
Читать дальше про “Извлечь подстроки используя разделители” »
Для сбора статистики используем процедуру
dbms_stats.gather_table_stats('SCOTT','EMP');
Если в базе данных имеются таблицы, которые часто обновляются, то частый сбор статистики может негативно повлиять на производительность базы данных. Для того, чтоб исключить объекты из автоматического или любого другого сбора статистики можно «закрепить» ее статистику:
begin
dbms_stats.gather_table_stats('SCOTT','EMP');
dbms_stats.lock_table_stats('SCOTT','EMP');
end;
Теперь, по этой таблице невозможно будет собрать статистику ни автоматически, ни вручную:
SQL>exec dbms_stats.gather_table_stats('SCOTT','EMP'); begin dbms_stats.gather_table_stats('SCOTT','EMP'); end; ORA-20005: object statistics are locked (stattype = ALL) ORA-06512: at "SYS.DBMS_STATS", line 13182 ORA-06512: at "SYS.DBMS_STATS", line 13202 ORA-06512: at line 2
Снять блокировку статистики:
dbms_stats.unlock_table_stats('SCOTT','EMP');
Посмотреть данные о сборе статистики можно в таблице DBA_TAB_STATISTICS
select * from DBA_TAB_STATISTICS t where t.table_name = :name_table
Собрать статистику для индекса
begin dbms_stats.gather_index_stats('OWNER', 'INDEX_NAME'); end;
Статистика на секцию
begin dbms_stats.gather_table_stats(ownname => p_owner, tabname => p_table_name, partname => p_partition_name, degree=> 4, no_invalidate=>true ); end;
Запрос для вывода только числовых значений, используем REGEXP.
При необходимости, оставляем только точку или запятую ‘^-?[[:digit:].]*$‘ или ‘^-?[[:digit:],]*$‘.
Или только целые числа ‘^-?[[:digit:]]*$‘
with t as ( select '56456456' str from dual union all select '4 5' str from dual union all select 'sds5' str from dual union all select '-1,5' str from dual union all select '-1.5' str from dual ) select * FROM t where regexp_like(str, '^-?[[:digit:].,]*$'); STR -------- 56456456 -1,5 -1.5
Ну и более простой вариант, который тоже подходит в некоторых случаях:
select case when length(TRIM(TRANSLATE('45', ' 0123456789', ' '))) is null then 'ЧИСЛО' else 'СТРОКА' end res from dual union all select case when length(TRIM(TRANSLATE('a4', ' 0123456789', ' '))) is null then 'ЧИСЛО' else 'СТРОКА' end res from dual
Вывести строки, которые начинаются на цифру
with t as ( select '56456456' str from dual union all select '4 5' str from dual union all select 'sds5' str from dual union all select '-1,5' str from dual union all select '-1.5' str from dual ) select * FROM t where regexp_like(str, '^\d'); STR -------- 56456456 4 5
Для Oracle Database 10g
with t as ( select 1 id, 1 val from dual union all select 3 id, 45 val from dual union all select 4 id, null val from dual union all select 5 id, null val from dual union all select 12 id, 48 val from dual union all select 10 id, 5 val from dual union all select 15 id, 10 val from dual) -- select id, val, last_value(val IGNORE NULLS) over (order by ID ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING ) prev from t order by id Пример вывода данных: ID VAL PREV ---------- ---------- ---------- 1 1 3 45 1 4 45 5 45 10 5 45 12 48 5 15 10 48
Пакет inv_convert
FUNCTION inv_um_convert(p_item_id IN NUMBER, p_from_uom_code IN VARCHAR2, p_to_uom_code IN VARCHAR2) RETURN NUMBER;
Пример:
select msi.segment1, msi.primary_uom_code, 'кг' as second_uom, inv_convert.inv_um_convert(msi.inventory_item_id,'кг', msi.primary_uom_code) as coefficient from mtl_system_items_b msi where msi.primary_uom_code = 'т' and rownum <= 10
Последние комментарии