pro* c调用存储过程 linux,Pro*C调用存储过程,存储过程名称如何传递? 高分求高手指点。。。...
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调用存储过程,存储过程名称如何传递? 高分求高手指点。。。...相关推荐
- linux脚本调用db2存储过程,LINUX定时执行含有DB2存储过程的SHELL脚本
<LINUX定时执行含有DB2存储过程的SHELL脚本>由会员分享,可在线阅读,更多相关<LINUX定时执行含有DB2存储过程的SHELL脚本(6页珍藏版)>请在人人文库网上搜 ...
- linux tao环境 安装_linux编译TAO的问题,求高手指导!!!!
按如下步骤操作,第四部安装TAO,为什么没有编译$TAO_ROOT/orbsvcs/Naming_Service和$TAO_ROOT/orbsvcs/Notify_Service1.安装GNUmake ...
- C#通过COM组件调用IDL的pro程序
C#通过COM组件调用IDL的pro程序 如果在"COM_IDL_connectLib.COM_IDL_connect oComIDL = new COM_IDL_connectLib.CO ...
- 手把手教你用Python脚本调用 DeepL API Pro 进电子书的行进行中英文自动翻译
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 洛阳亲友如相问,一片冰心在玉壶. ...
- linux python qt 安装目录,Linux 下QT调用Python库文件 以及Linux 安装Python3.8开发环境 问题...
最近想运用linux系统下Qt来实现c++ 与python的混合编程,linux系统会自带python2.7版本或者python3.5版本(深度linux). Qt调用python文件需要在pro文件 ...
- MySQL 学习笔记(6)— 存储过程创建、调用、删除以及带参数的存储过程
1. 存储过程总结 存储过程是一种存储在数据库中的程序.它可以包含多个 SQL 语句,并提供许多过程语言的功能,例如变量定义.条件控制语句.循环语句.游标以及异常处理等. 1.1 存储过程优点 实现代 ...
- MySQL存储过程的创建及调用
阅读目录:MySQL存储过程_创建-调用-参数 存储过程:SQL中的"脚本" 1.创建存储过程 2.调用存储过程 3.存储过程体 4.语句块标签 存储过程的参数 1.in:向过程里 ...
- linux下java调用matlab程序,linux_java调用windows_matlab程序
0 说明 本文为研究java和matlab的混合编程,进行了详细的测试和探索,以解决linux环境下java程序调用matlab程序的一个应用. linux端的环境 :(运行java程序并调用wind ...
- Linux下动态链接库调用
Linux下动态链接库调用 2014-11-01 10:39 3人阅读 评论(0) 收藏 编辑 删除 Linux下动态链接库调用 2013-06-08 20:52:48| 分类:集成开发环境相关 | ...
最新文章
- SpringBoot第十二篇:springboot集成apidoc
- response设置编码的三种方式
- Machine.Config在哪里?
- 仿真环境跟车2分钟,就让自动驾驶系统撞上马路牙子,攻破率超90%,多传感器融合系统都失效...
- Django连接mysql数据库
- Python的DataFrame多个条件过滤错误
- 跳出小程序 video组件 卡顿、黑屏、全屏等坑
- 中国男子足球运动员及男足国家队的评价
- 《神策军》第四期来袭!
- VS2017 安装 QT5.9
- python saltstack web_saltstack学习-8:web管理页面(halite)
- 【git系列】切换分支相关命令
- 【干货】百度知识中台白皮书:从数据到知识,知识中台赋能企业智能化升级.pdf(附下载链接)...
- 平台抗住日访问量 7 亿次,研发品控流程全公开
- JavaScript 函数参数是传值(byVal)还是传址(byRef)?
- mysql 不同服务器数据库表同步_mysql 不同服务器数据库表同步
- 13分钟搭建动易PHP论坛(OS:Linux)
- Android--NFC读写
- 高级前端工程师知识图谱
- 计算机中如何隐私保护,隐私保护!我们的电脑该怎么设置开机密码呢?
热门文章
- 要不要使用外键(foreign key )?
- Response.Clear() Response.ClearContent()和Response.ClearHeaders()之间的区别
- 手把手教你设计交友网站【3】
- 位运算求两个数的平均值
- 怎么能更好地利用好大数据分析
- 哪些是常见的大数据分析模型
- 如何更好的使用大数据
- 计算相同维度向量之间的欧氏距离
- php pdo-insert,php mysql pdo insert multiple rows 批量插入
- gis python趋势变化代码_GIS技术发展趋势——2018年回顾与2019年展望