Pro*C调用存储过程,存储过程名称如何传递? 高分求高手指点。。。0

运行编译后的执行程序时提示错误:ORA-00900: invalid SQL statement

以下是Pro*c代码:

#include

#include

#include

#include

EXEC SQL INCLUDE sqlca;

EXEC SQL INCLUDE oraca;

EXEC ORACLE OPTION (ORACA=YES);

void sql_error();

int main(int argc, char **argv)

{

EXEC SQL BEGIN DECLARE SECTION;

char* usrname="DLADM";

char* passwd="oracle";

VARCHAR sqlstmt[80];

VARCHAR pro[60];

float r_id;

char r_name[21];

EXEC SQL END DECLARE SECTION;

EXEC SQL WHENEVER SQLERROR DO sql_error();

EXEC SQL CONNECT :usrname IDENTIFIED BY :passwd;

/*输入存储过程名*/

printf("input proc name:\n");

scanf("%s", pro.arr);

pro.len = strlen(pro.arr);

sqlstmt.len = sprintf(sqlstmt.arr, "EXEC SQL CALL :pro");

puts(sqlstmt.arr);

EXEC SQL PREPARE sata FROM :sqlstmt;

EXEC SQL EXECUTE sata USING :pro;

EXEC SQL COMMIT WORK RELEASE;

exit(0);

}

void sql_error()

{

printf("%.*s\n",sqlca.sqlerrm.sqlerrml,sqlca.sqlerrm.sqlerrmc);

}

环境:AIX 5.3 Oracle 10.2.0

以下makefile:

#!/usr/ccs/bin/make -f

INCLUDE= -I ${ORACLE_HOME}/precomp/lib/env_precomp.mk \

-I${ORACLE_HOME}/bin/proc \

-I${ORACLE_HOME}/precomp/public \

-I$(ORACLE_HOME)/rdbms/public \

-I$(ORACLE_HOME)/plsql/public \

-I$(ORACLE_HOME)/network/public \

-I${ORALCE_HOME}/lib32 \

-I${ORALCE_HOME}/lib

CC=cc_r

PROCINCLUDE=${ORACLE_HOME}/bin/proc

CFLAGS= -g -q32 -qcpluscmt -DSS_32BIT_SERVER -D_DEBUG ${INCLUDE}

LINKS= -L${ORACLE_HOME}/lib -lclntsh

TARGET = test

OBJS = ${TARGET}.o

all: ${TARGET}

${TARGET}:${OBJS}

${TARGET}:$<

${CC} ${CFLAGS} $@.o -o $@ ${LINKS}

${TARGET}.c:$<

proc userid=DLADM/oracle@192.168.1.2:1521/zydb SQLCHECK=SEMANTICS include=${PROCINCLUDE} ${TARGET}.pc

clean:

rm -rf test test.c

pro* c调用存储过程 linux,Pro*C调用存储过程,存储过程名称如何传递? 高分求高手指点。。。...相关推荐

  1. linux脚本调用db2存储过程,LINUX定时执行含有DB2存储过程的SHELL脚本

    <LINUX定时执行含有DB2存储过程的SHELL脚本>由会员分享,可在线阅读,更多相关<LINUX定时执行含有DB2存储过程的SHELL脚本(6页珍藏版)>请在人人文库网上搜 ...

  2. linux tao环境 安装_linux编译TAO的问题,求高手指导!!!!

    按如下步骤操作,第四部安装TAO,为什么没有编译$TAO_ROOT/orbsvcs/Naming_Service和$TAO_ROOT/orbsvcs/Notify_Service1.安装GNUmake ...

  3. C#通过COM组件调用IDL的pro程序

    C#通过COM组件调用IDL的pro程序 如果在"COM_IDL_connectLib.COM_IDL_connect oComIDL = new COM_IDL_connectLib.CO ...

  4. 手把手教你用Python脚本调用 DeepL API Pro 进电子书的行进行中英文自动翻译

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 洛阳亲友如相问,一片冰心在玉壶. ...

  5. linux python qt 安装目录,Linux 下QT调用Python库文件 以及Linux 安装Python3.8开发环境 问题...

    最近想运用linux系统下Qt来实现c++ 与python的混合编程,linux系统会自带python2.7版本或者python3.5版本(深度linux). Qt调用python文件需要在pro文件 ...

  6. MySQL 学习笔记(6)— 存储过程创建、调用、删除以及带参数的存储过程

    1. 存储过程总结 存储过程是一种存储在数据库中的程序.它可以包含多个 SQL 语句,并提供许多过程语言的功能,例如变量定义.条件控制语句.循环语句.游标以及异常处理等. 1.1 存储过程优点 实现代 ...

  7. MySQL存储过程的创建及调用

    阅读目录:MySQL存储过程_创建-调用-参数 存储过程:SQL中的"脚本" 1.创建存储过程 2.调用存储过程 3.存储过程体 4.语句块标签 存储过程的参数 1.in:向过程里 ...

  8. linux下java调用matlab程序,linux_java调用windows_matlab程序

    0 说明 本文为研究java和matlab的混合编程,进行了详细的测试和探索,以解决linux环境下java程序调用matlab程序的一个应用. linux端的环境 :(运行java程序并调用wind ...

  9. Linux下动态链接库调用

    Linux下动态链接库调用 2014-11-01 10:39 3人阅读 评论(0) 收藏 编辑 删除 Linux下动态链接库调用 2013-06-08 20:52:48|  分类:集成开发环境相关 | ...

最新文章

  1. SpringBoot第十二篇:springboot集成apidoc
  2. response设置编码的三种方式
  3. Machine.Config在哪里?
  4. 仿真环境跟车2分钟,就让自动驾驶系统撞上马路牙子,攻破率超90%,多传感器融合系统都失效...
  5. Django连接mysql数据库
  6. Python的DataFrame多个条件过滤错误
  7. 跳出小程序 video组件 卡顿、黑屏、全屏等坑
  8. 中国男子足球运动员及男足国家队的评价
  9. 《神策军》第四期来袭!
  10. VS2017 安装 QT5.9
  11. python saltstack web_saltstack学习-8:web管理页面(halite)
  12. 【git系列】切换分支相关命令
  13. 【干货】百度知识中台白皮书:从数据到知识,知识中台赋能企业智能化升级.pdf(附下载链接)...
  14. 平台抗住日访问量 7 亿次,研发品控流程全公开
  15. JavaScript 函数参数是传值(byVal)还是传址(byRef)?
  16. mysql 不同服务器数据库表同步_mysql 不同服务器数据库表同步
  17. 13分钟搭建动易PHP论坛(OS:Linux)
  18. Android--NFC读写
  19. 高级前端工程师知识图谱
  20. 计算机中如何隐私保护,隐私保护!我们的电脑该怎么设置开机密码呢?

热门文章

  1. 要不要使用外键(foreign key )?
  2. Response.Clear() Response.ClearContent()和Response.ClearHeaders()之间的区别
  3. 手把手教你设计交友网站【3】
  4. 位运算求两个数的平均值
  5. 怎么能更好地利用好大数据分析
  6. 哪些是常见的大数据分析模型
  7. 如何更好的使用大数据
  8. 计算相同维度向量之间的欧氏距离
  9. php pdo-insert,php mysql pdo insert multiple rows 批量插入
  10. gis python趋势变化代码_GIS技术发展趋势——2018年回顾与2019年展望