【问题标题】:SQL Plus variable stringSQL Plus 变量字符串
【发布时间】:2021-01-16 18:35:36
【问题描述】:

我有 PLSQL 块和一个表。我需要从该表的行中编写一个表达式。 假设我的表格行类似于 a、b、c、d,我的描述应该是这样的;

desc_ VARCHAR2(32000) := &a || &b || &c || &d

我的一些变量取决于条件。例如,如果 &d 为 Null,我需要写“UNDEF”,如果它不是 null,则需要写“something”。

我的问题是如何将其应用于变量?

谢谢

【问题讨论】:

  • 您指出您的表有行 a、b、c、d,但您的赋值语句将其视为列(实际上这里是替换变量)。这些是完全不同的东西,那么它们是什么?根据具体情况,解决方案将完全不同。 @Littlefoot 将它们作为替换变量。

标签: oracle plsql sqlplus


【解决方案1】:

使用CASE。例如:

SQL> set serveroutput on
SQL> set ver off
SQL>
SQL> declare
  2    desc_ varchar2(200);
  3  begin
  4    desc_ := '&a' ||
  5             case when '&b' is null then 'UNDEF'
  6                  else 'SOMETHING'
  7             end  ||
  8             '&c';
  9    dbms_output.put_line(desc_);
 10  end;
 11  /
Enter value for a: This is A-
Enter value for b: ???
Enter value for c: -This is B
This is A-SOMETHING-This is B

PL/SQL procedure successfully completed.

SQL>

但是,当您使用 PL/SQL 时,为什么不创建一个存储过程并将这些值作为参数传递给它呢?

【讨论】:

    猜你喜欢
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多