源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-06-21 13:57 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Oracle如何直接运行OS命令(下)第1/2页
正在看的ORACLE教程是: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    sql_error()    {    char msg_buffer[512];   int msg_length;   int buffer_size = 512;   EXEC SQL WHENEVER SQLERROR CONTINUE;   sqlglm(msg_buffer, &buffer_size, &msg_length);   printf("Daemon error while executing:\n");   printf("%.*s\n", msg_length, msg_buffer);   printf("Daemon continuing.\n");   }    main()    {    EXEC SQL WHENEVER SQLERROR DO connect_error();   EXEC SQL CONNECT :uid;   printf("Daemon connected.\n");   EXEC SQL WHENEVER SQLERROR DO sql_error();   printf("Daemon waiting...\n");   while (1) {    EXEC SQL EXECUTE    BEGIN    /*接收deamon发来的字符*/    :status := DBMS_PIPE.RECEIVE_MESSAGE('daemon');   IF :status = 0 THEN    /*取出字符*/    DBMS_PIPE.UNPACK_MESSAGE(:command);   END IF;   END;   END-EXEC;   IF (status == 0)    {    command.arr[command.len] = '\0';   /*如果是stop,该进程就退出*/    IF (!strcmp((char *) command.arr, "STOP"))    {    printf("Daemon exiting.\n");   break;   }    ELSE IF (!strcmp((char *) command.arr, "SYSTEM"))    {    EXEC SQL EXECUTE    BEGIN    DBMS_PIPE.UNPACK_MESSAGE(:return_name);   DBMS_PIPE.UNPACK_MESSAGE(:value);   END;   END-EXEC;   value.arr[value.len] = '\0';   printf("Will execute system command '%s'\n", value.arr);   /*运行os命令*/    status = system(value.arr);   EXEC SQL EXECUTE    BEGIN    DBMS_PIPE.PACK_MESSAGE('done');   DBMS_PIPE.PACK_MESSAGE(:status);   :status := DBMS_PIPE.SEND_MESSAGE(:return_name);   END;   END-EXEC;
当前1/2页 [b]1[/b][url=http://www.1sucai.cn/article/7761_2.htm]2[/url][url=http://www.1sucai.cn/article/7761_2.htm]下一页[/url][url=http://www.1sucai.cn/article/7761_all.htm]阅读全文[/url]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部