Oracle如何直接運行OS命令(下)
{
printf
?。?Daemon error while responding to system command.");
printf(" status: %d\n", status);
}
}
ELSE
{
printf
?。?Daemon error: invalid command '%s' received.\n", command.arr);
}
}
ELSE
{
printf("Daemon error while waiting for signal.");
printf(" status = %d\n", status);
}
}
EXEC SQL COMMIT WORK RELEASE;
exit(0);
}
以上代碼起名為daemon.pc,用proc預編譯:
proc iname=daemon.pc userid=用戶名/密碼@服務名 sqlcheck=semantics
得到daemon.c,在用c進行編譯,注意在NT上要把orasql8.lib加上,否則編譯通過,連接沒法通過。
3、在服務器上運行daemon.exe
4、在sqlplus運行測試語句:
SQL> variable rv number
SQL> execute :rv := DAEMON.EXECUTE_SYSTEM('ls -la');
PL/SQL 過程已成功完成。
SQL> execute :rv := DAEMON.EXECUTE_SYSTEM('dir');
PL/SQL 過程已成功完成。
SQL>
DBMS_PIPE的用法見oracle的文檔。
<