【问题标题】:Parameterize Select query in stored procedure? [duplicate]在存储过程中参数化选择查询? [复制]
【发布时间】:2014-05-20 21:21:40
【问题描述】:

在甲骨文中

我发现我们不能在存储过程中编写select 语句。

但我想它必须有一个替代方案。有什么建议吗?

我的尝试

CREATE or replace PROCEDURE DEL as
BEGIN
  select * from CMN_MST;
end;

Error(3,3): PLS-00428: an INTO clause is expected in this SELECT statement

【问题讨论】:

  • 你尝试了什么?存储过程允许您编写选择语句。
  • 显示错误...Oracle不允许在存储过程中选择查询
  • 如果您发布一个非常短的示例,有人会提供帮助。
  • 好的,那么你想对你选择的数据做什么?如果你得到单行,你可以put it in a variable,但你似乎期望多行,你可以有一个循环遍历它们的游标,或者你可以将它们放在一个集合中,甚至将它们返回给调用者。我们真的猜不出你的目标是什么。

标签: sql oracle stored-procedures


【解决方案1】:

看看它说你需要一个 into 子句的错误消息

CREATE or replace PROCEDURE DEL as
  l_record cmn_mst%rowtype;
BEGIN
  select * 
  into l_record 
  from CMN_MST;
end;

这可能会导致 too_many_rows 错误,因为使用此方法一次只能选择 1 行。

我建议你先多学习一些PLSQL。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-12
  • 1970-01-01
  • 2014-05-10
  • 1970-01-01
  • 1970-01-01
  • 2013-01-08
相关资源
最近更新 更多