初学Pro*C 一个对于大家比较简单的问题

sailer_shi 2006-02-20 11:32:38
比方说一条sql语句

select a from b where c=d;
最后a得结果是:
1
2
3
4
5
我如果用Pro*C来写这个程序的话 是select a into :e from b where c = :d; 那么最后我的变量e里面的值是什么样子的呢?
这个问题对于开发果pro*c得人来说应该不难,但是我总是想不通,希望大家能给我个能让我明白的答案,谢谢
...全文
111 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sailer_shi 2006-02-20
  • 打赏
  • 举报
回复
那我怎么才能将这些数据全部放到e里面呢?
超叔csdn 2006-02-20
  • 打赏
  • 举报
回复
如果A的记录数>1,那么这句话就会出错,触发EXCEPTION TOO_MANY_ROWS.
所以E什么都不是.
gx1_007 2006-02-20
  • 打赏
  • 举报
回复
是定义了一个二维数组,用于存储查询的多个结果的.不需要指定的.查询语句会把找到的多个结果值存入emp_name中,你试一下就知道了.
sailer_shi 2006-02-20
  • 打赏
  • 举报
回复
星仔:正好要问的就是这个按照你定义的char emp_name[20][20];应该是一个二维数组亚,你在into emp_name的时候没有指定向那个位置传亚?还是那个定义就不是定义二维数组的?
wffffc 2006-02-20
  • 打赏
  • 举报
回复
没错,如果你的返回结果不是很多的时候直接把e定义成数组就可以了,
如果放回的结果很多的时候最好用游标操作.
gx1_007 2006-02-20
  • 打赏
  • 举报
回复
把e定义为一个数组,就可以了。给你一个例子,你就明白了。注意emp_name[20][20]和salary[10]。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sqlca.h>

void sql_error(char *);
extern sqlglm(char *,int *,int *);


void main()
{
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR userid[20], password[20];
char emp_name[20][20];
float salary[10];
int count;
EXEC SQL END DECLARE SECTION;
strcpy(userid.arr,"SCOTT");
userid.len =strlen(userid.arr);
strcpy(password.arr,"TIGER");
password.len = strlen(password.arr);
EXEC SQL WHENEVER SQLERROR DO sql_error("ORACLE--\n");
EXEC SQL CONNECT :userid IDENTIFIED BY :password;
printf("Connection as ORACLE user: %s\n",userid.arr);
EXEC SQL SELECT ename ,sal INTO :emp_name,:salary FROM emp
WHERE deptno = 20;
for(count = 0; count<sqlca.sqlerrd[2];count++)
printf("Employee name:%s, salary: %6.2f\n", emp_name[count],salary[count]);
EXEC SQL COMMIT WORK;

EXEC SQL COMMIT WORK RELEASE;
}
void sql_error(char *msg)
{
char err_msg[128];
size_t buf_len, msg_len;

EXEC SQL WHENEVER SQLERROR CONTINUE;
printf("\n%s\n", msg);
buf_len=sizeof(err_msg);
sqlglm(err_msg, &buf_len, &msg_len);
printf("%.*s\n", msg_len, err_msg);
EXEC SQL ROLLBACK RELEASE;
exit(EXIT_FAILURE);
}
2024 年 Uber 乘车分析数据集 这个综合数据集包含 2024 年 Uber 运营的详细拼车数据,提供了有关预订模式、车辆性能、收入流、取消行为和客户满意度指标的丰富见解。 数据集概述 该数据集捕获了多种车辆类型的 148,770 个总预订,并提供了拼车作的完整视图,包括成功乘车、取消、客户行为和财务指标。 主要统计数据: 总预订量:148.77K 次乘车 成功率:65.96%(93K 完成骑行) 取消率:25%(37.43K 取消预订) 客户取消:19.15%(27K 乘车) 司机取消: 7.45% (10.5K 乘车) 数据模式 数据集包含以下列: 列名称 描述 Date 预订日期 Time 预订时间 Booking ID 每次行程预订的唯一标识符 Booking Status 预订状态(已完成、客户取消、司机取消等) Customer ID 客户的唯一标识符 Vehicle Type 车辆类型(Go Mini、Go Sedan、Auto、eBike/Bike、UberXL、Premier Sedan) Pickup Location 游乐设施的起点 Drop Location 乘车目的地 Avg VTAT 司机到达上车地点的平均时间(以分钟为单位) Avg CTAT 从取件到目的地的平均行程时间(以分钟为单位) Cancelled Rides by Customer 客户发起的取消标志 Reason for cancelling by Customer 客户取消原因 Cancelled Rides by Driver 驱动程序启动的取消标志 Driver Cancellation Reason 司机取消原因 Incomplete Rides 未完成骑行标志 Incomplete Rides Reason 不完整骑行的原因

17,137

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧