【问题标题】:Assigning a variable with a select from - plsql使用 select from - plsql 分配变量
【发布时间】:2020-09-16 12:46:36
【问题描述】:

我正在尝试这样做:

声明变量名 varchar2(50)

Begin VariableName := (select column from table where rownum = 1);

有什么问题? 谢谢各位!

【问题讨论】:

    标签: plsql


    【解决方案1】:

    您需要使用select into

    像这样:

    select column into VariableName from table where rownum = 1;
    

    如果您有多个变量,您可以通过使用, 分隔它们来实现:

    declare
        a number;
        b date;
        c varchar2(100);
    begin
        select ca, sysdate, cc
          into a, b, c
          from your_table
         where rownum = 1;
    end;
    

    【讨论】:

      【解决方案2】:

      在声明语句后加分号 声明变量名 varchar2(50);

      【讨论】:

        【解决方案3】:

        为此,您可以更好地使用SELECT INTO,或者甚至更好地使用带有记录的游标。 SELECT INTO 将起作用,但如果 SELECT 语句未返回任何记录,您将收到 ORA-01403: no data found 错误。如果您有更多代码,这很烦人。

        例如:

        DECLARE
                CURSOR cTable IS
                       SELECT ColumnA FROM Table WHERE RowNum = 1;
                rTable cTable%ROWTYPE;
        BEGIN
                OPEN cTable;
                FETCH cTable INTO rTable;
                CLOSE cTable;
                
                DBMS_OUTPUT.PUT_LINE(rTable.ColumnA);
        END;
        /
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-05-07
          • 2021-07-17
          • 1970-01-01
          • 1970-01-01
          • 2020-01-05
          • 2011-09-09
          相关资源
          最近更新 更多