动态游标中的分组统计问题

xiongyp 2003-08-21 11:40:35
以下要实现:从表中按不同的字段分组,并得到人数总数.将字段变量代入问号好象不行,输出sqlerrtext为不能打开游标,请教如何解决?

string Emp_sex_var //字段变量
Emp_sex_var = "sex"//性别
DECLARE my_cursor DYNAMIC CURSOR FOR SQLSA ;

integer li_count
string ls_sex

string sqlstatement

sqlstatement = "SELECT ?,count(*) FROM employee GROUP BY ?"

PREPARE SQLSA FROM :sqlstatement ;

OPEN DYNAMIC my_cursor using :Emp_sex_var ;

FETCH my_cursor INTO :ls_sex,:li_count;

CLOSE my_cursor ;
...全文
55 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiongyp 2003-08-22
  • 打赏
  • 举报
回复
jdsnhan的完全正确,也向独孤狂客表示感谢。
我是借用pb的帮助中动态sql的第3种例子,哪知不对,如下:
DECLARE my_cursor DYNAMIC CURSOR FOR SQLSA ;

integer Emp_id_var

string Emp_state_var = "MA"

string sqlstatement

sqlstatement = "SELECT emp_id FROM employee "&

+"WHERE emp_state = ?"

PREPARE SQLSA FROM :sqlstatement ;

OPEN DYNAMIC my_cursor using :Emp_state_var ;

FETCH my_cursor INTO :Emp_id_var ;

CLOSE my_cursor ;
先给分,各位如有兴趣能说说为什么不能这样用吗?再次感谢!
polugen 2003-08-21
  • 打赏
  • 举报
回复
OPEN DYNAMIC my_cursor using :Emp_sex_var ;不对
USING后面只能是事物
aty283 2003-08-21
  • 打赏
  • 举报
回复
up
jdsnhan 2003-08-21
  • 打赏
  • 举报
回复
"SELECT ?,count(*) FROM employee GROUP BY ?"
此处你用的变量吗?如果是变量,那应该区分开常量与变量
"select " + 变量 + " from emploee group by " + 变量
另外,如果楼上说的 OPEN DYNAMIC my_cursor using DESCRIPTOR SQLDA;
内容简介   本书全面介绍了SQL语句在数据库开发所用到的技术和技巧。全书分为23章,涉及到SQLServer2000、SQLServer2005、Access、Oracle10g、MySql5.0和Postgresql8.2等6种数据库语言,内容包括SQL语言基础、常规数据查询、高级数据过滤、字符串查询、日期函数、日期函数、数据排序、聚集函数与分组统计、使用子查询、多表查询、高级查询、插入数据、更新和删除数据、创建、操纵数据库和表、使用视图、使用存储过程和函数、使用游标、使用触发器、事务处理、安全性控制、SQL高级特性、数据库对象查询、数据库安全与维护和嵌入式SQL等。全书共提供了463人个实例,每个实例都突出实用性,其大部分是程序开发者所需的有关问题的解决方案。   本书配有光盘,光盘提供了书所有实例的源代码。全部代码都经过精心调试,都可以正常运行。   本书适用于广大计算机爱好者和编程人员阅读,也可供大、专院校相关专业的师生学习参考。   目录   第1章 SQL语言基础   1.1 变量与常量   1.2 数据类型   1.3 复合语句   1.4 条件判断语句   1.5 循环语句   1.6 临时表   1.7 常用命令   第2章 常规数据查询   2.1 查询的基本结构   2.2 列的查询   2.3 列的计算   2.4 WHERE条件查询   2.5 区间查询   第3章 高级数据过滤   3.1 组合WHERE语句   3.2 IN运算符   3.3 NOT运算符   3.4 行查询   3.5 类型转换   3.6 进制转换   3.7 匹配查询   3.8 空值判断   第4章 字符串查询   第5章 日期查询   第6章 数据排序   第7章 聚合函数与分组统计   第8章 使用子查询   第9章 多表查询   第10章 高级查询   第11章 插入数据   第12章 更新和删除数据   第13章 创建、操纵数据库和表   第14章 使用视图   第15章 使用存储过程和函数   第16章 使用游标   第17章 使用触发器   第18章 事务处理   第19章 安全性控制   第20章 SQL高级特性   第21章 数据库对象查询   第22章 数据库安全与维护   第23章 嵌入式SQL   附录 SQL范例宝典实例适用范围
oracle教案(doc) 1. oracle安装及基本命令 1 1.1 oracle简介 1 1.2 oracle安装 1 1.2.1 常见版本 1 1.2.2 安装: 2 1.2.3 oracle必须启动的服务 2 1.3 oracle常见的第三方工具 4 2. SQL/PLUS 5 2.1 命令行方式 5 2.2 动手实践 9 3. SQL语句 9 3.1 所需要用到的表 9 3.1.1 雇员表(emp) 10 3.1.2 部门表(emp) 10 3.1.3 工资等级表 (salgrade) 11 3.1.4 奖金表 (bonus) 11 3.2 SQL简介 11 3.2.1 SQL简介 11 3.2.2 简单查询语句格式 12 3.2.3 限定查询(where 子句) 17 3.2.4 对查询结果进行排序 ORDER BY 子句 (重点) 24 3.2.5 单行函数 (重点) 26 3.2.6 SQL语句强化训练 39 3.2.7 多表查询 40 3.2.8 组函数及分组统计 (重点) 52 3.2.9 子查询 58 3.2.10 ROWNUM伪列(重点) 63 3.2.11 集合操作 65 3.2.12 连接查询及分组查询强化训练 68 3.3 数据库的更新操作 69 3.3.1 添加数据 69 3.3.2 添加数据的语法 69 3.3.3 修改数据 71 3.3.4 删除数据 71 3.3.5 事务处理 72 3.3.6 查询作业 75 3.4 创建和管理表(重点) 76 3.4.1 数据类型(重点) 76 3.4.2 表的建立(重点) 77 3.4.3 表的删除(删除) 79 3.4.4 表的修改(了解) 79 3.4.5 对表重命名(了解) 81 3.4.6 截断表(了解) 81 3.4.7 思考题: 82 3.5 约束 83 3.5.1 约束的分类: 83 3.5.2 修改约束 93 3.6 建表、约束、查询综合训练 95 3.6.1 题目背景: 96 3.6.2 功能要求: 96 3.6.3 建表 96 3.6.4 数据 97 3.6.5 要求 98 3.7 视图(重点) 98 3.7.1 创建视图的语法: 98 3.7.2 删除视图: 99 3.7.3 完整的视图创建语法: 100 3.7.4 视图对基本表的更新选项 101 3.8 序列 103 3.8.1 创建及使用系列 103 3.8.2 删除序列 108 3.9 同义词 108 3.9.1 创建同义词的语法: 109 3.9.2 删除同义词的语法 109 3.10 oracle表空间及维护 109 3.11 索引 114 3.11.1 索引概述: 114 3.11.2 索引如何建立? 114 3.12 用户管理 114 3.12.1 创建用户的语法: 114 3.13 数据库的备份与恢复(了解) 114 4. 数据库范式设计 114 4.1 第一范式(1NF) 114 4.2 第二范式(2NF) 114 4.3 第三范式(3NF) 114 5. 数据库设计工具(重点) 114 6. 数据库设计分析(重点) 114 6.1 需求: 114 6.2 实现 114 7. PL/SQL编程 114 7.1 基本语法: 114 7.1.1 代码书写风格的规范化: 114 7.2 最简单的语句块 114 7.3 简单的PL/SQL语句块 114 7.4 语句块的组成 114 7.5 Sql/plus的变量 114 7.5.1 在变量声明时需要遵守一些基本的规则: 114 7.5.2 PL/SQL常用的变量类型: 114 7.5.3 变量声明 114 7.5.4 简单变量赋值 114 7.5.5 %type属性 114 7.5.6 %rowtype属性 114 7.5.7 SQL语句在PL/SQL的运用 114 7.6 选择结构 114 7.6.1 格式1: IF_THEN_ELSE语句 114 7.6.2 格式2: IF_THEN_ELSE_IF语句 114 7.7 循环结构 114 7.8 异常处理(了解) 114 7.8.1 异常 114 7.8.2 PL/SQL是如何处理异常的? 114 7.8.3 异常涉及的步骤 114 7.8.4 异常的类型 114 7.9 游标 (重点) 114 7.9.1 什么是游标? 114 7.9.2 游标有什么作用? 114 7.9.3 为什么避免使用游标? 114 7.9.4 Oracle游标的类型? 114 7.9.5 使用游标 114 7.10 存储过程 114 7.10.1 存储过程的基本概念 114 7.10.2 存储过程的建立及执行 114 7.10.3 调用存储过程的方法 114 7.10.4 带参数的存储过程 114 7.10.5 删除存储过程 114 7.11 函数 114 7.11.1 创建函数 114 7.12 触发器 114 7.13 树状结构的存储与展示 114 7.13.1 基本原理 114 7.13.2 实际应用1 114 7.13.3 实际应用2 114 7.13.4 例: 展现emp表的树状结构 114 8. TOAD使用技巧 114

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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