能否根据表名和字段名字符串进行查询?

kobe21 2007-04-30 04:11:59
在存储过程里,通过参数传入表名table_name和列名col_name,都是字符串型的。

现在想在存储过程中查询table_name中的col_name字段,应该怎么写啊?

我现在这样写但报错啊!

create or replace procedure validdata1(table_name varchar2,col_name varchar2)
is
cursor cur1
is
select * from $table_name where (floor(col_name/100) not between 1900 and 2010 ) or ((col_name - floor(col_name/100)*100) not between 1 and 12);
begin
for line in cur1
loop
dbms_output.put_line(line.col_name);
end loop;
end;
...全文
311 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
DragonBill 2007-05-21
  • 打赏
  • 举报
回复
没有办法了, 因为你连简单的分析能力都没有








随了只会一步一趋地照别人说的去做而自己不花一点心思去想, 去思考, 再怎么帮助也没用的


PLS-00201: 必须说明标识符
就已经指出有些变量(COL1, COL2)没有定义,你不会连这基本的分析能力都没有吧?

难道你看不出来我上面写的那些代码只是伪代码吗?
nkannn 2007-05-21
  • 打赏
  • 举报
回复
加了分号会出现“PLS-00201: 必须说明标识符”的问题,这个怎么办?
wvivw 2007-05-21
  • 打赏
  • 举报
回复
wsklt 2007-05-04
  • 打赏
  • 举报
回复
FETCH cur1 INTO COL1, COL2,... 后面加分号
kobe21 2007-04-30
  • 打赏
  • 举报
回复
这个EXIT又不对了。。。PLS-00103:出现符号“EXIT”在需要下列之一时:.(,%;limit
DragonBill 2007-04-30
  • 打赏
  • 举报
回复
OPEN cur1 FOR V_SQL;
for line in cur1 loop
dbms_output.put_line(line.col_name);
end loop;

改成:


LOOP
FETCH cur1 INTO COL1, COL2,...
EXIT WHEN cur1%NOTFOUND;
END LOOP;
kobe21 2007-04-30
  • 打赏
  • 举报
回复
在for line in cur1这行报错:CUR1不是过程名或尚未定义?
DragonBill 2007-04-30
  • 打赏
  • 举报
回复
改成:

create or replace procedure validdata1(table_name varchar2,col_name varchar2)

is
TYPE RefCur is REF CURSOR;
cur1 RefCur;
V_SQL VARCHAR2(5000);
/*
cursor cur1
is
select * from $table_name where (floor(col_name/100) not between 1900 and 2010 ) or ((col_name - floor(col_name/100)*100) not between 1 and 12);
*/
begin
V_SQL = 'select * from ' || $table_name || 'where (floor(' ||
col_name || '/100) not between 1900 and 2010 ) or ((' || col_name ||
' - floor(' || col_name || '/100)*100) not between 1 and 12)';
OPEN cur1 FOR V_SQL;
for line in cur1
loop
dbms_output.put_line(line.col_name);
end loop;

CLOSE cur1;
end;
WPS Office 2019 是一款功能丰富的办公软件套装,它整合了文字、表格、演示、PDF 等组件,具备体积小巧、功能丰富、兼容性强等特点,能满足日常办公的多种需求。 功能组件丰富:包含 WPS 文字、WPS 演示、WPS 表格、WPS PDF 等组件,可用于文档编辑、表格计算、幻灯片制作、PDF 处理等,支持 DOC、DOCX、XLS、XLSX、PPT 等多种格式,能与 Microsoft Office 较好地兼容。 支持云存储与协作:用户登录 WPS 账号后,可实现多终端、跨平台的数据同步,还能与他人协同办公,文档可通过微信、QQ 等社交平台一键分享。 PDF 功能强大:提供沉浸式 PDF 阅读体验和稳定的编辑服务,支持一键编辑 PDF 文档内容。借助 OCR 技术,可精准转换文档、表格、PPT、图片等格式的文件。 界面设计优化:具有全新视觉设计,默认皮肤舒适清爽,还支持桌面背景、界面字体、皮肤、格式图标等个性化设置。同时,文档标签可拖拽成独立窗口或合并,用户可自主选择文档显示方式,还能将文件放置在不同工作区,便于分类浏览与管理。 内置实用工具:内置了简单的网页浏览器,点击文档中的链接会默认用其打开,可进行网页添加到首页、另存为 PDF 等操作。此外,“应用中心” 集成了输出转换、文档助手、安全备份等多种实用功能。 模板资源丰富:稻壳商城提供了大量模板、范文、图片等素材资源,涵盖求职简历、总结计划、合同协议等常见文档类型,方便用户快速创建专业文档。 表格功能特色突出:支持通过关键词快速切换工作表,设有阅读模式和护眼模式。还可分类合并单元格,以及拆分合并单元格并填充内容。公式编辑器中可轻松完成公式嵌套,筛选时可通过 “仅筛选此项” 一步完成特定值筛选,还能根据筛选条件生成动态分析图表。另外,“特色功能” 和 “智能工具箱” 菜单中包含 PDF

17,140

社区成员

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

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