Документация Oracle на русском языке





Сайт посвящен разработке информационных систем с использованием технологий Oracle. На сайте можно найти полезную литературу и документацию на русском языке по программированию и администрированию Oracle.Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации.

Главная :: Карта


Oracle Database или Oracle RDBMS — объектно-реляционная система управления базами данных компании Oracle.



 

DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

PL/SQL пакет для работы с файлами на сервере




Документация Oracle на русском языке





Сайт посвящен разработке информационных систем с использованием технологий Oracle. На сайте можно найти полезную литературу и документацию на русском языке по программированию и администрированию Oracle.Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации.



Oracle Database или Oracle RDBMS — объектно-реляционная система управления базами данных компании Oracle.



PL/SQL Пакет для работы с файловой системой на сервере , копирование файлов , перемещение , переименование и тд и тп.
CREATE OR REPLACE PACKAGE Pkg_Fileutil AS
/******************************************************************************
Наименование: pkg_fileutil
НАЗНАЧЕНИЕ:
функции , процедуры для работы с файлами и папками с помощью Oracle СУБД
 
СВЕДЕНИЯ:
Версия Создана Автор Описание
--------- ---------- --------------- ------------------------------------
1.0 24.12.2006 Чалышев М.М. 1. Работа с файлами в oracle СУБД
******************************************************************************/
-- процедуры и функции пакета
cv_extseparator CONSTANT VARCHAR2(1) := '.';
gv_OSseparator VARCHAR(1);
 
-- возвращает разделитель операционной системы
--- '\' для windows или '/' для unix систем
FUNCTION fn_GetOSSeparator RETURN VARCHAR2;
-- выделяет имя файла ,входной параметр полный путь к файлу,
-- пример: для 'c:\temp\file.log' вернет 'file.log'
FUNCTION fn_ExtractFileName(p_FileName IN VARCHAR2) RETURN VARCHAR2;
-- выделяет диск , входной параметр полный путь к файлу
-- пример: для 'c:\temp\file.log' вернет 'c:\'
FUNCTION fn_ExtractRootDisk(p_FileName IN VARCHAR2) RETURN VARCHAR2;
-- возвращает каталог , где расположен фа1л,
-- пример: 'c:\temp\file.log' вернет 'c:\temp\'
FUNCTION fn_ExtractFileDir(p_FileName IN VARCHAR2) RETURN VARCHAR2;
-- возвращает расширение фа1ла
-- пример: 'c:\temp\file.log' вернет '.log'
FUNCTION fn_ExtractFileExt(p_FileName IN VARCHAR2) RETURN VARCHAR2;
-- возвращает расширение фа1ла
-- пример: fn_ChangeFileExt('c:\temp\file.log' , '.bak') - вернет c:\temp\file.bak
FUNCTION fn_ChangeFileExt(p_FileName IN VARCHAR2, p_ext VARCHAR2) RETURN VARCHAR2;
 
-- возвращает расширение фа1ла
-- пример: fn_FileExists('c:\temp\file.log' ) - 1 или 0
FUNCTION fn_FileExists(p_FileName IN VARCHAR2) RETURN NUMBER;
 
-- копирует файл из одного каталога в другой
-- пример:
-- pr_FileCopy('c:\temp\file.log' , 'c:\oracle\file.log')
-- копирует file.log в каталог oracle
PROCEDURE pr_FileCopy(p_oldFileName IN VARCHAR2, p_newfilename VARCHAR2);
-- переименовывает некоторый файл
-- пример: pr_FileRename('c:\temp\file.log' , '.bak') - вернет c:\temp\file.bak
PROCEDURE pr_FileRename(p_oldFileName IN VARCHAR2, p_newfilename VARCHAR2);
-- копирует файл из одного каталога в другой
-- пример: pr_FileMove('c:\temp\file.log' , '.bak') - вернет c:\temp\file.bak
PROCEDURE pr_FileMove(p_OldFileName IN VARCHAR2, p_newfilename VARCHAR2);
-- копирует файл из одного каталога в другой
-- пример: pr_deleteFile('c:\temp\file.log') - удалит c:\temp\file.Log
PROCEDURE pr_FileDelete(p_FileName IN VARCHAR2);
 
-- копирует файл из одного каталога в другой
-- пример: pr_deleteFile('c:\temp\') - права для java для c:\temp\
PROCEDURE pr_SetJavaGrand(p_DirName VARCHAR2,p_UserName VARCHAR2); END Pkg_Fileutil;
/
 
CREATE OR REPLACE PACKAGE BODY Pkg_Fileutil AS /********************************************************************
Назначение:
находит разделитель файловой сисемы ОС на Oracle сервере
Параметры:
Зависимости:
Ограничения:
Пример:
fn_GetOSSeparator - результат '/' или '\'
Список исправлений:
*********************************************************************/
FUNCTION fn_GetOSSeparator RETURN VARCHAR2
IS
vr_osstring VARCHAR2(255) ;
vr_returnvalue VARCHAR2(1) ;
BEGIN
BEGIN
SELECT DBMS_UTILITY.PORT_STRING INTO vr_osstring FROM dual;
IF INSTR(UPPER(vr_osstring), 'WIN') <> 0 THEN
vr_returnvalue := '\';
ELSE vr_returnvalue := '/';
END IF;
EXCEPTION
WHEN OTHERS THEN RAISE_APPLICATION_ERROR('fn_GetOSSeparator '||SQLERRM ,0 );
vr_returnvalue := '';
END;
RETURN vr_returnvalue;
END fn_GetOSSeparator;
 
 
/********************************************************************
Назначение:
Возвращает имя файла из строки с указанием полныого пути к фа1йу
Параметры:
p_FileName - полный путь к файлу с указанием диска и каталогов
Зависимости:
Ограничения:
Пример:
fn_ExtractFileName('c:\temp\file.log') результат 'file.log'
Список исправлений:
*********************************************************************/
FUNCTION fn_ExtractFileName(p_FileName IN VARCHAR2) RETURN VARCHAR2
IS
vr_returnvalue VARCHAR2(255);
BEGIN
BEGIN
vr_returnvalue := SUBSTR(p_FileName, INSTR(p_FileName,gv_OSseparator,-1)+1);
RETURN vr_returnvalue;
EXCEPTION
WHEN OTHERS THEN RAISE_APPLICATION_ERROR('fn_ExtractFileName '||SQLERRM ,0 ); END;
END fn_ExtractFileName;
 
/********************************************************************
Назначение:
Возвращает имя диска по полному пути к фа1лу
Параметры:
p_FileName - полный путь к файлу с указанием диска и каталогов
Зависимости:
Ограничения:
Пример:
fn_ExtractRootDisk('c:\temp\file.log') результат 'c:\'
Список исправлений:
*********************************************************************/
FUNCTION fn_ExtractRootDisk(p_FileName IN VARCHAR2) RETURN VARCHAR2
IS
vr_returnvalue VARCHAR2(255);
BEGIN
BEGIN
vr_returnvalue := SUBSTR(p_FileName, 1, INSTR(p_FileName,gv_OSseparator)); EXCEPTION
WHEN OTHERS THEN RAISE_APPLICATION_ERROR('fn_ExtractRootDisk '||SQLERRM ,0 );
END;
RETURN vr_returnvalue;
END fn_ExtractRootDisk;
 
/********************************************************************
Назначение:
Каталог файла по полному пути к фа1лу
Параметры:
p_FileName - полный путь к файлу с указанием диска и каталогов
Зависимости:
Ограничения:
Пример:
fn_ExtractRootDisk('c:\temp\file.log') результат 'c:\temp\'
Список исправлений:
*********************************************************************/
FUNCTION fn_ExtractFileDir(p_FileName IN VARCHAR2) RETURN VARCHAR2
IS
vr_returnvalue VARCHAR2(255);
BEGIN
BEGIN
vr_returnvalue := SUBSTR(p_FileName, 1, INSTR(p_FileName,gv_OSseparator,-1)); EXCEPTION
WHEN OTHERS THEN RAISE_APPLICATION_ERROR('fn_ExtractFileDir '||SQLERRM ,0 );
END;
RETURN vr_returnvalue;
END fn_ExtractFileDir;
 
/********************************************************************
Назначение:
Возвращает расширение файла по полному пути к фа1лу
Параметры:
p_FileName - полный путь к файлу с указанием диска и каталогов
Зависимости:
Ограничения:
Пример:
fn_ExtractFileExt('c:\temp\file.log') результат '.log'
Список исправлений:
*********************************************************************/
FUNCTION fn_ExtractFileExt(p_FileName IN VARCHAR2) RETURN VARCHAR2
IS
vr_returnvalue VARCHAR2(255);
BEGIN
BEGIN
vr_returnvalue := SUBSTR(p_FileName, INSTR(p_FileName,cv_extseparator,-1));
EXCEPTION
WHEN OTHERS THEN RAISE_APPLICATION_ERROR('fn_ExtractFileExt '||SQLERRM ,0 );
END;
RETURN vr_returnvalue;
END fn_ExtractFileExt;
/********************************************************************
Назначение:
Возвращает расширение файла по полному пути к фа1лу
Параметры:
p_FileName - полный путь к файлу с указанием диска и каталогов
Зависимости:
Ограничения:
Пример:
fn_ExtractFileExt('c:\temp\file.log', '.bak') результат 'c:\temp\file.bak'
Список исправлений:
*********************************************************************/
FUNCTION fn_ChangeFileExt(p_FileName IN VARCHAR2, p_ext VARCHAR2) RETURN VARCHAR2
IS
vr_returnvalue VARCHAR2(255);
BEGIN
BEGIN
vr_returnvalue := REPLACE(p_FileName, fn_ExtractFileExt(p_FileName => p_FileName ),p_ext );
EXCEPTION
WHEN OTHERS THEN RAISE_APPLICATION_ERROR('fn_ChangeFileExt '||SQLERRM ,0 );
END;
RETURN vr_returnvalue;
END fn_ChangeFileExt;
/********************************************************************
Назначение:
Возвращает данные о фактическом наличии файла
Параметры:
p_FileName - полный путь к файлу с указанием диска и каталогов
Зависимости:
Ограничения:
Пример:
fn_FileExists('c:\temp\file.log' ) - 1 файл есть или 0 файла нет
Список исправлений:
*********************************************************************/
FUNCTION fn_FileExists(p_FileName IN VARCHAR2) RETURN NUMBER
IS
vr_returnvalue NUMBER;
vr_exists BOOLEAN;
vr_temp NUMBER;
BEGIN
BEGIN
EXECUTE IMMEDIATE ' CREATE OR REPLACE DIRECTORY SYS_DST_FL_UTL AS '||''''||UPPER(fn_extractfiledir(P_FileName))||'''';
vr_returnvalue := 0;
UTL_FILE.fcopy
(
'SYS_DST_FL_UTL'
, fn_extractfilename(P_FileName)
, 'SYS_DST_FL_UTL'
, fn_extractfilename(P_FileName)
);
vr_returnvalue := 1; EXCEPTION
WHEN OTHERS THEN vr_returnvalue := 0;
END;
RETURN vr_returnvalue;
END fn_FileExists;
 
/********************************************************************
Назначение:
Копирует файл из одного каталога в другой
Параметры:
p_FileName - полный путь к файлу с указанием диска и каталогов
Зависимости:
Ограничения:
Пример:
-- pr_FileCopyt('c:\temp\file.log' , 'c:\oracle\file.log')
-- копирует file.log в каталог oracle
Список исправлений:
--
*********************************************************************/
PROCEDURE pr_FileCopy(p_oldFileName IN VARCHAR2, p_newfilename VARCHAR2)
IS
BEGIN
BEGIN
EXECUTE IMMEDIATE ' CREATE OR REPLACE DIRECTORY SYS_EXC_FL_UTL AS '||''''||UPPER(fn_extractfiledir(P_OldFileName))||'''';
EXECUTE IMMEDIATE ' CREATE OR REPLACE DIRECTORY SYS_DST_FL_UTL AS '||''''||UPPER(fn_extractfiledir(P_NewFileName))||'''';
UTL_FILE.fcopy
(
'SYS_EXC_FL_UTL'
, fn_extractfilename(P_OldFileName)
, 'SYS_DST_FL_UTL'
, fn_extractfilename(P_NewFileName)
);
EXCEPTION
WHEN OTHERS THEN RAISE_APPLICATION_ERROR('pr_FileCopy '||SQLERRM ,0 );
END;
END pr_FileCopy;
 
/********************************************************************
Назначение:
Копирует файл из одного каталога в другой
Параметры:
p_FileName - полный путь к файлу с указанием диска и каталогов
Зависимости:
Ограничения:
Пример:
-- pr_FileCopyt('c:\temp\file.log' , 'c:\oracle\file.log')
-- копирует file.log в каталог oracle
Список исправлений:
--
*********************************************************************/
PROCEDURE pr_FileRename(p_oldFileName IN VARCHAR2, p_newfilename VARCHAR2)
IS
BEGIN
BEGIN
EXECUTE IMMEDIATE ' CREATE OR REPLACE DIRECTORY SYS_DST_FL_UTL AS '||''''||fn_extractfiledir(P_NewFileName)||''''; UTL_FILE.frename
(
'SYS_EXC_FL_UTL'
, fn_extractfilename(P_OldFileName)
, 'SYS_EXC_FL_UTL'
, fn_extractfilename(P_NewFileName)
, TRUE
);
EXCEPTION
WHEN OTHERS THEN RAISE_APPLICATION_ERROR('fn_ChangeFileExt '||SQLERRM ,0 );
END;
END pr_FileRename;
/********************************************************************
Назначение:
Копирует файл из одного каталога в другой
Параметры:
p_FileName - полный путь к файлу с указанием диска и каталогов
Зависимости:
Ограничения:
Пример:
-- pr_FileCopyt('c:\temp\file.log' , 'c:\oracle\file.log')
-- копирует file.log в каталог oracle
Список исправлений:
--
*********************************************************************/
PROCEDURE pr_FileMove(p_oldFileName IN VARCHAR2, p_newfilename VARCHAR2)
IS
BEGIN
BEGIN
EXECUTE IMMEDIATE ' CREATE OR REPLACE DIRECTORY SYS_EXC_FL_UTL AS '||''''||fn_extractfiledir(P_OldFileName)||'''';
EXECUTE IMMEDIATE ' CREATE OR REPLACE DIRECTORY SYS_DST_FL_UTL AS '||''''||fn_extractfiledir(P_NewFileName)||'''';
UTL_FILE.frename
(
'SYS_EXC_FL_UTL'
, fn_extractfilename(P_OldFileName)
, 'SYS_DST_FL_UTL'
, fn_extractfilename(P_NewFileName)
, TRUE
);
EXCEPTION
WHEN OTHERS THEN RAISE_APPLICATION_ERROR('fn_ChangeFileExt '||SQLERRM ,0 );
END;
END pr_FileMove;
 
/********************************************************************
Назначение:
Удляет файл из каталога
Параметры:
p_FileName - полный путь к файлу с указанием диска и каталогов
Зависимости:
Ограничения:
Пример:
-- pr_FileDelete('c:\temp\file.log' )
-- удаляет file.log
Список исправлений:
--
*********************************************************************/
PROCEDURE pr_FileDelete(p_FileName IN VARCHAR2)
IS
BEGIN
BEGIN
EXECUTE IMMEDIATE ' CREATE OR REPLACE DIRECTORY SYS_EXC_FL_UTL AS '||''''||UPPER(fn_extractfiledir(P_FileName))||''''; UTL_FILE.fremove
(
'SYS_EXC_FL_UTL'
, fn_extractfilename(P_FileName)
);
EXCEPTION
WHEN OTHERS THEN RAISE_APPLICATION_ERROR('fn_ChangeFileExt '||SQLERRM ,0 );
END;
END pr_FileDelete;
/********************************************************************
Назначение:
Распределяет права для java процедур
Параметры:
p_FileName - полный путь к файлу с указанием диска и каталогов
Зависимости:
Ограничения:
Пример:
-- pr_SetJavaGrand('c:\temp\' )
-- добавляет права для c:\temp\
Список исправлений:
--
*********************************************************************/
PROCEDURE pr_SetJavaGrand(p_DirName VARCHAR2,p_UserName VARCHAR2)
IS
vr_script VARCHAR2(2240);
BEGIN
BEGIN
-- SQLCODE
vr_script := 'begin dbms_java.grant_permission('||''''||UPPER(p_UserName)||''''
||' , '||''''||'java.io.FilePermission'||''''||' , '||''''||LOWER(p_DirName)||''''
||' , '||''''||'read'||''''||'); end;';
EXECUTE IMMEDIATE vr_script;
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR('pr_SetJavaGrand '||SQLERRM,0); -- потом исправить
END;
END pr_SetJavaGrand;
BEGIN
Pkg_Fileutil.gv_OSseparator := fn_GetOSSeparator;
END Pkg_Fileutil ;
/
 

jAntivirus
 



jAntivirus