Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Köra dos komando från en funktion.

Postades av 2003-11-28 10:37:23 - Henrik Suominen, i forum databaser, Tråden har 6 Kommentarer och lästs av 976 personer

Hej

Kan man köra ett doskomando från en funktion. Hur ser då det ut. Jag har testat med 'shell' och 'host'. Vet inte exakt hur det funkar.


Svara

Sv: Köra dos komando från en funktion.

Postades av 2003-11-28 18:41:27 - Kenneth Hedman

Eftersom du skriver i databaser forum misstänker jag du menar en extended procedure som finns i SQL-Server som heter xp_cmdshell ?

exempel
xp_cmdshell 'Dir C:\'


Svara

Sv: Köra dos komando från en funktion.

Postades av 2003-12-01 13:29:50 - Henrik Suominen

Jag kör en Oracle databas. Finns det motsvarande för detta oxå.


DEt som jag vill göra är på ett ungefär som nedan.

IF extension = 'dwg' then "kopiera över en pdf-fil"
end IF


Svara

Sv: Köra dos komando från en funktion.

Postades av 2003-12-03 11:19:45 - Ulf Magnusson

Hej.

Om du har Oracle 8i eller senare så får du skriva en lagrad procedur i Java.
Om det är en tidigare version så vet jag inget sätt.

Lycka till.
/Uffe


Svara

Sv: Köra dos komando från en funktion.

Postades av 2003-12-03 12:23:56 - Magnus Johansson

Hej,

jag är inte säker men jag tror inte att Oracle-motorn får göra operativsystemanrop på det sätt som du vill göra. Däremot så får SqlPlus göra detta (kommer inte ihåg exakt kommando - är ett tag sedan jag gjorde det. Jag löste problemet genom att köra en extra sqlplus i en egen process (unix). Denna fick sedan lyssna på en "pipe" dit jag kunde skicka kommandon. Länk som kanske kan vara tilll nytta:

http://asktom.oracle.com/pls/ask/f?p=4950:8:4711359447916617644::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:16212348050,

Hoppas att detta hjälper dig.


Svara

Sv: Köra dos komando från en funktion.

Postades av 2003-12-04 12:24:15 - Ulf Magnusson

Hej igen.

Oracle får inte göra någonting utanför databasen, så länge du inte har gett den tillstånd att göra detta.

Några exempel:

dbms_java.grant_permission( 'schema user', 'SYS:java.io.FilePermission', '<<ALL FILES>>', 'execute' )

dbms_java.grant_permission( 'schema user', 'SYS:java.io.FilePermission', 'some_file', 'read' )
Är inte säker på hur syntaxen ser ut för ett helt bibliotek.

Du kan använda java's "Runtime.getRuntime().exec(...)"
eller metoderna i java.lang.io.

Om du gör något som Oracle inte är behörig (av dig) att göra så
föreslår den ofta hur du ska göra för att tilldela rätt behöriget.

Lycka till
/Uffe


Svara

Sv: Köra dos komando från en funktion.

Postades av 2003-12-04 21:46:56 - Folke Larsson

Hej Henke

Jag försökte skicka ett svar tidigare, men det funkade inte så jag
försöker igen. Hoppas det inte blir dubbla inlägg.

Kanske är det lättast om du gör det i ett SQL-script.
Då använder du, som du påpekade tidigare host( eller kanske & ) ex.
SQL> host copy C:\dir1\*.pdf C:\dir2\*.*

Om du vill använda c går det nog också bra, men jag har inte hunnit pröva själv.
Här kommer ett utdrag från UNIX-miljö som kanske måste anpassas till Win.

External Procedure Source Code
------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void sh(char *);

void sh( char *cmd )
{
int num;

num = system(cmd);
}

Issue the following commands to compile the code and generate the shared
object in Solaris:

cc -G -c shell.c
ld -r -o shell.so shell.o

You can also use the demo_rdbms.mk makefile to build shared libraries
for use in external procedures. Using this method insulates you from
any Operating System specific dependencies (e.g., which flags to use
for ld).

For example:

In 8.0.X,

$ make -f demo_rdbms.mk extproc_nocallback SHARED_LIBNAME=shell.so OBJS=shell.o

In 8.1.X,

$ make -f demo_rdbms.mk extproc_no_context SHARED_LIBNAME=shell.so OBJS=shell.o


Library Definition
------------------

CREATE LIBRARY shell_lib is '/u11/home/lsupport/proc/shell.so';
/

Note: The directory in quotes is the current of location of the library that
was created in the steps above.


PL/SQL Wrapper Procedure
------------------------

create or replace procedure shell(cmd IN char)
as external
name "sh"
library shell_lib
language C
parameters (cmd string);
/


Execution
---------

SQL> exec shell('ls');

cli.trc exe_prba.sql prueba.mk shell.c.old
core listener.old prueba.o shell.o
dec2bin.c listener.ora prueba.so shell.so
dec2bin.c.old nena.lst prueba.sql shell.sql
dec2bin.o p.sql sal.1 shell.sql.old
dec2bin.so pepito.lst sal.2 sqlnet.log
dec2bin.sql prb sal.3 tnsnames.ora
dec2bin.sql.old prb.c salida.lst tnsnames.ora.old
envoltorio.sql prueba.c shell.c uno.sql

PL/SQL procedure successfully completed
###############################################

Bästa Hälsningar

Folke Larsson




Svara

Nyligen

  • 17:54 Vegastars New Zealand
  • 16:56 Verde Casino Danmark
  • 13:54 Vegastars: Top Australian Online C
  • 21:28 Chicken Road Casino Game
  • 21:21 1xBet Promo Code 2025
  • 18:37 Remove the bumper in AUDI
  • 15:35 Chicken road crash game
  • 21:41 Automotive Services UK

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 979
27 965
271 783
614
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies