`
m635674608
  • 浏览: 5029379 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

pro*c 动态sql二

 
阅读更多
  1. 这种方法也只能用于执行非查询语句, 并且允许非查询动态SQL语句内包含输入宿主变量占位符, 但它要求在预编译时刻动态SQL语句内的占位符数量及输入宿主变量的数据类型必须确定。   
  2. ①. 准备阶段: 调用PREPARE语句准备需要执行的动态SQL语句, 这时Oracle对动态SQL语句进行语法分析, 检查它所参照的数据库对象等;   
  3. ②. 执行阶段: 调用EXECUTE 命令执行准备好的动态SQL语句。   
  4. 采用这种方式时, 动态SQL被准备好后可以被多次执行, 而不需要Oracle在   
  5. 每次执行时重新解释SQL语句。   
  6. 如:   
  7. …   
  8. <连接数据库>   
  9. strcpy(str_sql,“INSERT INTO test001 values (:K1,:K2,:K3)”);   
  10. EXEC SQL PREPARE test FROM :str_sql;   
  11. EXEC SQL EXECUTE test USING :uname, :uaddress,:usex;   
  12. #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <sqlca.h>
    void connect();
    void sql_err();
    
    void dynamic_sqltwo();
    
    void main()
    {
       EXEC SQL WHENEVER SQLERROR  DO sql_err();
       connect();
       dynamic_sqltwo();
       EXEC SQL COMMIT RELEASE;
    }
    
    void sql_err()
    {
     // printf("%.*s\n",sqlca.sqlerrm.sqlerrml,,sqlca.sqlerrm.sqlerrmc);
    }
    
    void connect()/*数据库连接-本地数据库,不添加server*/
    {
      EXEC SQL BEGIN DECLARE SECTION;
      VARCHAR oraCN[30];
      EXEC SQL END DECLARE SECTION;
      strcpy(oraCN.arr,"scott/Tiger@TEST_dist");
      EXEC SQL CONNECT :oraCN;
    }
    
    void dynamic_sqltwo()
    {
        EXEC SQL BEGIN DECLARE SECTION;
        char name[10];
        int newsalary;
        char control;
        EXEC SQL END DECLARE SECTION;
        for(;;)
        {
           printf("intput employee name: ");
           gets(name);
           printf("input employee salary: ");
           scanf("%d",&newsalary);
           getchar();
           EXEC SQL PREPARE stat FROM 'UPDATE emp  SET sal=:a WHERE upper(ename)=upper(:b)';
           EXEC SQL EXECUTE stat USING :newsalary,:name;
           printf("continue? (Y/N)");
           scanf("%c",&control);
           getchar();
           if(control=='N'||control=='n') break;
    
        }
    }
    
    
     
分享到:
评论

相关推荐

    Pro * c的动态SQL方法在仿真系统中的应用.pdf

    Pro*C是一种基于C语言的嵌入式SQL语言,能够将SQL语句嵌入到C语言程序中,从而实现数据库操作。Pro*C的动态SQL方法是指在Pro*C程序中使用动态定义的SQL语句来实现数据库操作。这种方法可以根据不同的数据库和应用...

    Pro*c编程电子图书

    1. **高级Pro*C特性**:深入讲解Pro*C的高级特性,如动态SQL、批处理、并发控制等。 2. **性能优化**:介绍如何通过Pro*C优化数据库访问,包括索引策略、查询优化和内存管理。 3. **分布式处理**:探讨如何在Pro*C中...

    oracle培训pro*c

    Oracle Pro*C 是一种集成的开发工具,用于在C语言中嵌入SQL语句,以便高效地与Oracle数据库进行交互。这种技术将C语言的强大功能与SQL的数据库操作能力结合在一起,提供了一种灵活且高性能的方式来构建数据库应用...

    Oracle Pro*C 编程入门.pdf

    1. Pro*C简介:Pro*C是一种将SQL语句嵌入C程序中的开发工具,它允许开发者在C语言中直接使用SQL语句访问Oracle数据库。它是一种第三代语言嵌入式SQL工具,可以在Oracle数据库管理系统中使用。Pro*C程序可以执行...

    pro*c学习资料

    PRO*C为开发者提供了一种将SQL语句嵌入C语言程序的有效方式,使得开发者可以在保持C语言强大逻辑处理能力的同时,充分利用SQL语言进行高效的数据管理。通过了解PRO*C的基本概念、程序结构以及如何使用SQL语句,...

    pro*c sample

    2. **高效性**:由于C语言的底层控制能力,Pro*C程序执行数据库操作的速度通常比使用纯SQL或PL/SQL更快。 3. **移植性**:尽管Pro*C代码是与Oracle数据库紧密耦合的,但因为它是基于C语言的,所以理论上可以在任何...

    《精通Oracle 10g Pro*C/C++编程》源代码与学习笔记

    8. **动态SQL**:在Pro*C中,可以使用字符串拼接或者EXEC SQL EXECUTE IMMEDIATE语句执行动态SQL,这在处理灵活的查询需求时非常有用。 9. **存储过程和函数**:学习如何在C/C++中调用Oracle的存储过程和函数,以及...

    Pro*C程序设计ORACLE调用接口

    《Pro*C程序设计ORACLE调用接口》是关于在C语言中使用Oracle数据库的一种高效方法。Pro*C,全称为Pre-Compiler for C,是Oracle公司提供的一个预编译器,它允许开发者直接在C程序中嵌入SQL语句,极大地提高了数据库...

    使用Pro*C/C++ 开发嵌入式SQL程序

    2. **Pro*C/C++的预编译过程**:预编译器将源代码中的SQL语句转换为C/C++函数调用,同时生成一个头文件,包含了必要的类型定义和声明。预编译后的代码可以像普通C/C++程序一样编译和链接。 3. **连接数据库**:使用...

    精通PRO*c编程

    PRO*C是Oracle Corporation为C程序员设计的一种工具,它允许在C程序中嵌入SQL语句,使得C语言能够与Oracle数据库无缝集成。 一、PRO*C简介 PRO*C是Oracle数据库的C语言接口,它扩展了C语言,增加了对SQL和PL/SQL的...

    linux下c/c++连oracle数据库技术pro*c

    Pro*C是Oracle客户端工具集的一部分,它将PL/SQL块转换为C/C++函数,使得开发者可以在C或C++程序中直接执行Oracle数据库的SQL和PL/SQL语句。这不仅提高了开发效率,也提供了更好的性能,因为数据库调用可以被优化。...

    PRO*C入门实例

    在IT领域,PRO*C是Oracle公司提供的一种预编译器,它允许开发人员使用C语言来编写PL/SQL代码,从而更高效地与Oracle数据库进行交互。这个“PRO*C入门实例”可能是针对初学者的一个教程,通过一个实际的代码示例来...

    Pro*C/C++ 编程

    Pro*C/C++ 是一种集成在C或C++编程语言中的预处理器,它允许程序员直接在源代码中嵌入PL/SQL语句,用于与Oracle数据库进行交互。这种编程方式提供了高效且灵活的数据库访问手段,特别适合于开发与Oracle数据库紧密...

    java 调 pro*c

    2. **预处理Pro*C源代码**:使用Pro*C预处理器,例如`proc`命令,将SQL语句转换为C代码。 ```bash proc include=oci.h outdir=generated srcfile=myproc.c ``` 3. **编译C代码**:使用C编译器(如GCC)将预处理...

    oracle pro*c入门

    2. **SQL语句的使用**:在Pro*C中,可以使用各种SQL语句,包括数据定义(如CREATE TABLE)、数据操纵(如INSERT, UPDATE, DELETE)、会话控制(如CONNECT)、事务控制(如COMMIT, ROLLBACK)等。每个SQL语句必须以`...

    Pro*C

    **Pro*C**是一种由Oracle提供的C语言扩展,它允许开发者在C程序中直接嵌入SQL语句,并通过Oracle预编译器将其转换成标准C代码,从而实现数据库操作与业务逻辑的无缝集成。 #### 二、新特性介绍 - **ORACLE 9i ...

    pro*c程序设计详解

    Pro*C是Oracle公司提供的一种预编译器,它允许程序员在C语言中直接嵌入SQL语句,从而实现高效的数据库操作。以下是对Pro*C程序设计主要知识点的详细阐述: 1. **Pro*C概述**:Pro*C是C语言的一个扩展,它引入了特殊...

    Pro*C增删改查Oracle数据库的代码

    Pro*C增删改查Oracle数据库中数据表的代码

    VC整合Pro*C开发环境配置(图)

    Pro*C是Oracle公司提供的一种预编译器,它允许C/C++程序员直接在C或C++代码中嵌入SQL语句,从而实现与Oracle数据库的紧密交互。下面将详细阐述这一配置过程。 **1. 安装必要的组件** 首先,确保已经安装了以下组件...

    Pro*C/C++ Programmer’s Guide, 10g Release 2 (10.2)

    2. **动态SQL**:允许运行时构造和执行SQL语句。 - 示例:`EXEC SQL VARCHAR sql_stmt; EXEC SQL sql_stmt := "SELECT * FROM table WHERE condition = :cond"; EXEC SQL WHENEVER SQLERROR CONTINUE; EXEC SQL ...

Global site tag (gtag.js) - Google Analytics