社区
Oracle
帖子详情
一条查询语句的存储过程为何无法编译成功
ncwznet
2006-02-22 07:45:14
create or replace procedure test(var in INTEGER) is
begin
select * from scott.emp where EMPNO=:var;
end test;
提示:有编译错误?索引中缺少in或out参数?
...全文
178
5
打赏
收藏
一条查询语句的存储过程为何无法编译成功
create or replace procedure test(var in INTEGER) is begin select * from scott.emp where EMPNO=:var; end test; 提示:有编译错误?索引中缺少in或out参数?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chliang315
2006-02-23
打赏
举报
回复
不能用过程返回值
ncwznet
2006-02-23
打赏
举报
回复
谢谢楼上的兄弟,但能不能不用函数,不知返回一个字段值,而用过程给我返回一个结果集呢?
boydgmx
2006-02-22
打赏
举报
回复
create or replace function test(var in INTEGER) RETURN VARCHAR2
is
str SCOTT.EMP.ENAME%TYPE;
begin
select ENAME INTO str from scott.emp where EMPNO=var;
RETURN str;
end test;
/
ncwznet
2006-02-22
打赏
举报
回复
哈哈,傻傻猫,自家人呢,多谢提醒,谁能给出具体的写法。我只是想用c#调用自己编的oracle存储过程类,就想有个返回结果集就行。没学过oracle的存储过程写法阿。。。
sasacat
2006-02-22
打赏
举报
回复
ORACLE存储过程中不能用select ... from scott.emp 之类的查询语句,要得到结果集要使用游标,这一点跟MS SQL大不一样,要注意
SQL Server
存储过程
与实例
存储过程
Procedure是一组为了完成特定功能的SQL语句集合,经
编译
后存储在数据库中,用户通过指定
存储过程
的名称并给出参数来执行。
存储过程
中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。 由于
存储过程
在创建时即在数据库服务器上进行了
编译
并存储在数据库中,所以
存储过程
运行要比单个的SQL语句块要快。同时由于在调用时只需用提供
存储过程
名和必要的参数信息,所以在一定程度上也可以减少网络流量、简单网络负担。 1、
存储过程
的优点 A、
存储过程
允许标准组件式编程
存储过程
创建后可以在程序中被多次调用执行,而不必重新编写该
存储过程
的SQL语句。而且数据库专业人员可以随时对
存储过程
进行修改,但对应用程序源代码却毫无影响,从而极大的提高了程序的可移植性。 B、
存储过程
能够实现较快的执行速度 如果某一操作包含大量的T-SQL语句代码,分别被多次执行,那么
存储过程
要比批处理的执行速度快得多。因为
存储过程
是预
编译
的,在首次运行一个
存储过程
时,查询优化器对其进行分析、优化,并给出最终被存在系统表中的存储计划。而批处理的T-SQL语句每次运行都需要预
编译
和优化,所以速度就要慢一些。 C、
存储过程
减轻网络流量 对于同一个针对数据库对象的操作,如果这一操作所涉及到的T-SQL语句被组织成一
存储过程
,那么当在客户机上调用该
存储过程
时,网络中传递的只是该调用语句,否则将会是多条SQL语句。从而减轻了网络流量,降低了网络负载。 D、
存储过程
可被作为一种安全机制来充分利用 系统管理员可以对执行的某一个
存储过程
进行权限限制,从而能够实现对某些数据访问的限制,避免非授权用户对数据的访问,保证数据的安全。
MySQL
存储过程
和函数的操作(十二)
数据库对象表时存储和操作数据的逻辑结构,而数据库对象
存储过程
和函数,则是用来实现将一组关于表操作的sql语句当作一个整体来执行。在数据库系统中,当调用
存储过程
和函数时,则会执行这些对象中所设置的sql语句组,从而实现相应功能。 1. 为什么使用
存储过程
和函数的操作 有时针对表的一个完整操作往往不是单条sql语句就可以实现的,而是需要一组sql语句来实现。在具体应用当中,一个完整的操作会包含多条sql语句,在执行过程中需要根据前面sql语句的执行结果有选择地执行后面sql语句。
存储过程
和函数可以简单理解为
一条
或多条sql语句的集合。
存储过程
和函数就是事先经过
编译
并存储在数
ASP.NET性能优化八条建议
1、数据库访问性能优化 A、尽量减少数据库连接,并充分利用每次数据库连接:连接的创建、打开和关闭是有开销的。可以使用连接池 B、合理使用
存储过程
:
存储过程
是存储在服务器端的一组预
编译
的SQL。使用
存储过程
可以避免对SQL的多次
编译
,后续查询可以复用之前的执行计划。另外
存储过程
可以减少SQL语句网络传输开销 C、优化SQL语句:这个就太多了,如合理使用索引、视图,避免复杂子查询 2、字符串操作性能优化 A、使用值类型的ToString()方法 对不同类型进行 + 连接时,会发生装箱操作转化为引用类型再添加到字符串中。装箱操作会在托管堆中分配一个新对象,将原有的值复制到新对象中,代价很高。使用To
mysql 预
编译
语句_SQL预
编译
1.数据库预
编译
起源(1)数据库SQL语句
编译
特性:数据库接受到sql语句之后,需要词法和语义解析,优化sql语句,制定执行计划。这需要花费一些时间。但是很多情况,我们的
一条
sql语句可能会反复执行,或者每次执行的时候只有个别的值不同(比如query的where子句值不同,update的set子句值不同,insert的values值不同)。(2)减少
编译
的方法如果每次都需要经过上面的词法语义解析、...
sql 预
编译
语句
sql 预
编译
语句 1. 背景 本文重点讲述MySQL中的预
编译
语句并从MySQL的Connector/J源码出发讲述其在Java语言中相关使用。 注意:文中的描述与结论基于MySQL 5.7.16以及Connect/J 5.1.42版本。 2. 预
编译
语句是什么 通常我们的
一条
sql在db接收到最终执行完毕返回可以分为下面三个过程: 词法和语义解析 优化sql语句,制定执行计划 执行并返回结果 我们把这种普通语句称作Immediate Statements。 但是很多情况,我们的
一条
sql语句可能会反
Oracle
17,089
社区成员
55,237
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章