【问题标题】:how to call multiple columns in a stored procedure如何在存储过程中调用多个列
【发布时间】:2012-02-29 13:49:36
【问题描述】:

我是存储过程的新手,我不太了解。 我正在用一个例子进行测试。你可以帮帮我吗? 这是我的存储过程

分隔符 $$

如果字典表存在则删除过程$$

创建过程dictionarytable(id VARCHAR(20),name VARCHAR(20),工作 VARCHAR(20),放置 VARCHAR(20),mobileno VARCHAR(20),自行车 VARCHAR(20),汽车 VARCHAR(20),homeno VARCHAR(20),dictionaytype VARCHAR(20),意思是VARCHAR(20),句子 VARCHAR(20),反义词 VARCHAR(20),同义词 VARCHAR(20))

开始

选择 id,名称,工作,地点,mobileno,自行车,汽车,homeno,dictionaytype,含义,句子,反义词,同义词 从字典 INTO 字典表;结束$$

分隔符; 我想在存储过程字典表中调用字典(表)中的 id、name、13 列 Begin 中的查询错误,您能否指定一个查询来显示所有 13 列

【问题讨论】:

    标签: mysql stored-procedures


    【解决方案1】:

    您不能将字段值传递到过程中,您可以将它们传递到用户变量、声明的变量或 OUT 参数中。注意,使用 INTO 子句时只能传递一条记录。例如:

    SET @var1 = NULL;
    SELECT column1 INTO @var1 FROM table;
    

    如果要复制多于一条记录,则可以使用INSERT INTO...SELECT 语句将数据集复制到第二张表。例如:

    INSERT INTO table2 SELECT column1 FROM table;
    

    另外,如果您想使用变量或参数作为标识符(在您的情况下为字段名称),那么您应该使用prepared statements

    【讨论】:

    • 感谢 devart insert select 语句为我创造了奇迹。但是我们如何在休眠映射 hbm 文件中调用多个列。这里我正在粘贴休眠的示例代码 @NamedNativeQuery(name = "callStockStoreProcedure", query = "CALL dictionarytable(':id',':name',;:work)", resultClass = Dictionary.class ) }) hbm 类代码
    • 我对休眠无话可说。我认为您应该使用“休眠”标签询问另一个问题中的映射。
    猜你喜欢
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-01
    • 2016-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多