Oracle中如何直接运行OS命令(下)
| EXEC SQL WHENEVER SQLERROR CONTINUE; sqlglm(msg_buffer, &buffer_size, &msg_length); printf("Daemon error while connecting:/n"); printf("%.*s/n", msg_length, msg_buffer); printf("Daemon quitting./n"); exit(1); } void EXEC SQL WHENEVER SQLERROR CONTINUE; EXEC SQL WHENEVER SQLERROR DO sql_error(); ELSE IF (!strcmp((char *) command.arr, "SYSTEM")) |
| IF (status) { 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 DBMS_PIPE的用法见oracle的文档。 |











文章评论
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面