Oracle如何运行OS命令(下)第1页2

Oracle当然你看是多么的Oracle运行OS命令(下图)。EXEC SQL每当一个继续;
Sqlglm(msg_buffer,buffer_size,msg_length);
printf(守护程序错误而连接:;
printf(% *的。
printf(守护进程退出。;
出口(1);
}

无效
sql_error()
{
焦msg_buffer { 512 };
国际msg_length;
国际buffer_size = 512;
当一个SQL语句继续;
Sqlglm(msg_buffer,buffer_size,msg_length);
printf(程序错误而执行:;
printf(% *的。
printf(守护进程的继续。;
}
主要()
{
当一个SQL语句做connect_error();
EXECSQLCONNECT:UID;
printf(守护连接。;
当一个SQL语句做sql_error();
printf(守护等待…;
当(1){
SQL执行语句
开始
接收控制 / * * /字符
现状:= dbms_pipe.receive_message('daemon);
如果:状态= 0然后
删除该字符
dbms_pipe.unpack_message(:命令);
最后如果;
结束;
end-exec;
如果(状态= 0)
{
命令。ARR {命令。Len } = 0;
如果停止,退出的过程。
如果(!StrCmp((char *)command.arr,停止))
{
printf(守护进程退出。;
打破;
}
否则如果(!StrCmp((char *)command.arr,系统))
{
SQL执行语句
开始
dbms_pipe.unpack_message(:return_name);
dbms_pipe.unpack_message(:价值);
结束;
end-exec;
价值。ARR {价值。Len } =0;
printf(将执行系统命令%s
运行操作系统命令
状态=系统(价值。ARR);
SQL执行语句
开始
dbms_pipe.pack_message('done);
dbms_pipe.pack_message(:状态);
现状:= dbms_pipe.send_message(:return_name);
结束;
end-exec;