【问题标题】:How to select the value of a variable in Oracle?Oracle中如何选择变量的值?
【发布时间】:2013-09-29 10:25:41
【问题描述】:

我是 Oracle 的新手。如何设置此变量并显示其值?

declare nextId number;
begin  
        select HIBERNATE_SEQUENCE.nextval into nextId from dual;      
        select nextId from dual;
end;

它抱怨在这个 SELECT 语句中需要一个 INTO 子句。

【问题讨论】:

    标签: sql oracle select select-into


    【解决方案1】:

    如果您只想知道序列的下一个或当前值, 你可以简单地使用 sql 查询:

    SELECT HIBERNATE_SEQUENCE.nextval FROM dual;
    SELECT HIBERNATE_SEQUENCE.currval FROM dual;
    

    至于知道如何在pl/sql中进行(11g之前):

    SET SERVEROUTPUT ON
    DECLARE
         nextId NUMBER;
    BEGIN
         SELECT HIBERNATE_SEQUENCE.nextval INTO nextId FROM dual;
         dbms_output.put_line(nextId);
    END;
    

    从 11g 开始:在 plsql 中使用更简化的序列为:

    SET serveroutput ON
    DECLARE
         nextId NUMBER := HIBERNATE_SEQUENCE.nextval;
    BEGIN
         dbms_output.put_line(nextId);
    END;
    

    或者干脆

    BEGIN
         dbms_output.put_line(HIBERNATE_SEQUENCE.nextval);
    END;
    

    更多详情:Click here

    【讨论】:

    • +1 但从 11g 开始,您可以直接访问 PL/SQL 中的序列。您可以将第 5 行替换为 nextID := HIBERNATE_SEQUENCE.nextval;
    【解决方案2】:

    在 pl/sql 块中,不能像

    那样编写 SQL 语句
    select nextId from dual;
    

    这就是它向您显示错误的原因。顺便说一句,您完全不需要此声明。要将其显示为输出,您应该使用 -

    DBMS_OUTPUT.PUT_LINE(nextId);
    

    为了能够显示它,您需要在声明块之前编写以下语句 -

    设置服务器输出;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-20
      • 1970-01-01
      • 2020-07-30
      • 1970-01-01
      • 1970-01-01
      • 2013-05-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多