当前位置: 首页 > 面试题库 >

如何将整行(在SQL中,而不是PL / SQL中)传递给存储的函数?

鲁浩渺
2023-03-14
问题内容

我遇到以下(非常简单)的问题。我想编写一个(Oracle)SQL查询,大致如下:

SELECT count(*), MyFunc(MyTable.*)
FROM MyTable
GROUP BY MyFunc(MyTable.*)

在PL /
SQL中,可以使用RECORD类型(和/或%ROWTYPE),但是据我所知,这些工具在SQL中不可用。但是,该函数需要完整的行。如何将整个行传递给存储的函数?

谢谢!


问题答案:

不要以为可以。

使用所需的所有参数创建函数,或者传递行的ID并在函数内执行SELECT。



 类似资料:
  • 问题内容: 我有两个表,并且两个表都连接在一起。 我有一个存储过程,该过程应该返回所有作为参数传递给它的品牌ID的产品。 我的代码如下。 但是,这是给错误的是和是 当我按照以下方式进行硬编码时,它可以正常工作,并从db返回所需的数据。 任何帮助:) 问题答案: 另一种选择是使用“间接”(正如我一直称呼的那样) 然后,您可以做.. 这样,将select语句构建为字符串,然后执行。 我现在添加了验证,

  • 问题内容: 我有一个存储过程,可以根据两个表选择一个数据列表。第一张表是固定的:。但是第二个表可以是多个表之一。表本身的名称是相同的:。但是,表的架构不同: 用户将从应用程序中选择模式,然后将所选模式作为参数传递给存储过程。 但是,当我在创建存储过程时解析存储过程时,会出现错误。 无论如何,有没有要传递架构名称作为参数? 问题答案: 使用DynamicSql 这样尝试

  • 问题内容: 我有一个执行另一个由参数及其参数和传递的过程的过程。 但是我还需要动态传递参数,而无需在过程中对其进行编辑。例如,我在想像这样的事情 像这样的字符串在哪里 有没有办法做到这一点? 问题答案: 还不清楚包装程序的目的是什么(审计或调试),这似乎是一个很尴尬的解决方案。如果您解释为什么要执行此操作,那么某人可能会有完全不同的解决方案,并且希望更好。 提案的最大问题是只能将参数作为字符串传递

  • 问题内容: 如何指定参数为表名? 问题答案: 你不能 相反,您需要将其作为VARCHAR2字符串传递,然后使用动态SQL: 阅读有关Dynamic SQL的信息, 并注意如果不正确地使用它会带来的问题,例如性能,可伸缩性和安全性较差。

  • 例如,我有一个员工列表。我想将这个列表作为一个表,并将它与另一个表连接起来。但是员工列表应该作为参数从C#传递。

  • 问题内容: 我有一个存储过程,它将列名和表名作为参数。 此过程给我一个错误: 必须声明标量变量@TableName 尽管我已经在顶部声明了它。 问题答案: 使用动态SQL: