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

存储过程/函数可以返回表吗?

秦建元
2023-03-14
问题内容

MySql存储过程/函数可以在不使用临时表的情况下返回表吗?

创建以下过程

CREATE PROCEDURE database.getExamples() 
    SELECT * FROM examples;

然后用

CALL database.getExamples()

显示示例表-正如预期的那样-但似乎无法进行以下操作:

SELECT * FROM CALL database.getExamples()

是否可以从存储过程/函数中返回查询结果表,如果可以,怎么办?


问题答案:

就目前而言,这是不可能的。

以下是该子句中可能使用的 文档FROM

table_references:
    table_reference [, table_reference] ...

table_reference:
    table_factor
  | join_table

table_factor:
    tbl_name [[AS] alias] [index_hint)]
  | table_subquery [AS] alias
  | ( table_references )
  | { OJ table_reference LEFT OUTER JOIN table_reference
        ON conditional_expr }

join_table:
    table_reference [INNER | CROSS] JOIN table_factor [join_condition]
  | table_reference STRAIGHT_JOIN table_factor
  | table_reference STRAIGHT_JOIN table_factor ON conditional_expr
  | table_reference {LEFT|RIGHT} [OUTER] JOIN table_reference join_condition
  | table_reference NATURAL [{LEFT|RIGHT} [OUTER]] JOIN table_factor

join_condition:
    ON conditional_expr
  | USING (column_list)

index_hint:
    USE {INDEX|KEY} [FOR JOIN] (index_list)
  | IGNORE {INDEX|KEY} [FOR JOIN] (index_list)
  | FORCE {INDEX|KEY} [FOR JOIN] (index_list)

index_list:
    index_name [, index_name] ...

如您所见,存储过程不在此列表中。



 类似资料:
  • 我有一个包含两个参数的存储过程。我可以在服务器管理工作室成功执行它。它向我显示了我所期望的结果。然而,它也返回一个返回值。 它增加了这一行, 我希望存储过程返回它在结果中显示给我的表,而不是返回值,因为我从MATLAB调用这个存储过程,它返回的都是true或false。 我需要在存储过程中指定它应该返回什么吗?如果是这样,我如何指定一个包含4列的表(varchar(10)、float、float、

  • 问题内容: 如何计算存储过程将以最快的方式返回的行数。存储过程返回大约100K到1M记录的行。 问题答案: 选择: 执行存储过程后。

  • 我正在尝试编写一个可以返回结果的Java存储过程。我在Oracle网站上找到了这个文档,但是没有一个示例提供返回数据http://docs.oracle.com/cd/B19306_01/java.102/b14187/cheight.htm#CHDJJDGH 我创建了如下软件包: 包体如下 和 Java 代码 我使用SQLDeveloper通过以下指令调用我的过程 执行第二条指令时,我有以下错误

  • 我有一个存储过程,它接受参数并返回一个长值。 我如何使用jdbcTemplate来调用这个存储过程并获得返回的值。 这样对吗?

  • 问题内容: 我正在尝试从存储过程中获取返回值,但它始终返回0。 C#代码 SP 在所有情况下,它都返回0。我不知道问题所在。 问题答案: 我尝试了类似您的代码,并且可以按预期工作。 但是,您的代码中两次调用ExecuteNonQuery。 首次调用时,将按预期插入记录,然后为返回值添加参数并再次执行命令。但是现在记录已存在,并且存储过程始终落在else块中,因此始终返回零。

  • 问题内容: 寻找关于获取返回值和结果集的最干净方法的建议(不将引用的参数传递给存储的proc)。 MY存储的proc具有返回值以显示错误等,并且它们以select语句结尾以获取信息。使用常规命令,我将创建一个包含返回值的输出参数。我无法更改数据库中存储的proc,因此除了返回值之外,我无法传递其他输出参数。 想法?? 问题答案: 在LINQ to SQL DataContext设计器中通过从服务器