Avatar billede mundtprivat Nybegynder
03. december 2001 - 14:53 Der er 4 kommentarer og
2 løsninger

hvodan sletter man en fil

Er der nogen som kender til en rutine som kan slette filer i Oracle PL/SQL?
Avatar billede teepee Nybegynder
03. december 2001 - 15:07 #1
Du kan lave en c-stump der tillader hostkald of slette via denne.
Avatar billede mundtprivat Nybegynder
03. december 2001 - 15:11 #2
Det ville passe mig bedre hvis jeg kunne holde hele applikationen i PL/SQL.

Når du foreslår c er det så fordi du mener det ikke kan lade sig gøre i PL/SQL?
Avatar billede teepee Nybegynder
03. december 2001 - 15:40 #3
Ja, du kan tømme filen for indhold, altså få en nul-længde fil, men jeg har ikke kunnet finde ud af at slette filen, med mindre at host kald er blevet brugt.
Avatar billede pnielsen Nybegynder
03. december 2001 - 18:15 #4
utl_file pakken kan ikke slette, men tømme dine filer. Du kan så have fx. et crom job der ryder op engang imellem i alle tomme filer.

Ellers kan du bruge java:


CREATE OR REPLACE FUNCTION delete_file
(file IN VARCHAR2)
RETURN NUMBER
AS LANGUAGE JAVA
NAME \'JavaDelete.delete(java.lang.String)
return int\';
/

CREATE OR REPLACE JAVA SOURCE NAMED \"JavaDelete\" AS
import java.io.File;
public class JavaDelete
{
public static int delete (String fileName)
{
File myFile = new File (fileName);
boolean sucessfull = myFile.delete();
if (sucessfull)
return 1;
else
return 0;
}
}
/

Give grants and synonyms to this function as you use to do.
Additionally you will have to grant access to your local files
logging in as SYS or SYSTEM in SQL+ and execute:

dbms_java.grant_permission(\'<your_user>\',
\'java.io.FilePermission\',
\'<your_directory>/*\',
\'read, write\');

Replace <your_user> by the oracle schema
to which you installed the java-code. And replace
<your_directory> and the slash by a backslash if
you are under NT. (I didn\'t try if it works with
slash under NT). Replace the asterisk (* is a wildcard)
by a filename or combine it with a filename if you want
to restrict access.
Avatar billede pnielsen Nybegynder
03. december 2001 - 18:15 #5
mener cron job :-) (unix)

På NT er det \"at\" kommandoen
Avatar billede mundtprivat Nybegynder
05. december 2001 - 09:17 #6
Jeg har valgt at lave batfil som sletter filen i stedet.

Tak for hjælpen!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester