【问题标题】:pl-sql it can't compare two string ? why [duplicate]pl-sql 不能比较两个字符串?为什么[重复]
【发布时间】:2017-10-10 17:23:49
【问题描述】:
declare 
  v_date varchar2(15);
begin 
  v_date := to_char(sysdate, 'DAY');
  if upper(v_date) = to_char('TUESDAY') then
     dbms_output.put_line('Today is Tuesday');
  else 
     dbms_output.put_line('Today is not tuesday'|| upper(v_date) );
  end if ;
end; 

【问题讨论】:

  • 您的问题是什么?语法错误?总是在做 else 子句?...
  • 试试这个:v_date := trim(to_char(sysdate, 'DAY'));

标签: oracle plsql


【解决方案1】:

请修剪你从 to_char 得到的值,然后你应该得到正确的结果

declare 
  v_date varchar2(15);
begin 
  v_date := to_char(sysdate, 'DAY');
  if trim(v_date) = 'TUESDAY' then
     dbms_output.put_line('Today is Tuesday');
  else 
     dbms_output.put_line('Today is not tuesday '|| v_date );
  end if ;
end; 

【讨论】:

  • 奇怪的是TRIM是必需的
  • 我不知道........为什么要空白填充?
  • 实际上我们在从日期获取日期值后得到空间,我认为 to_char 的日期有一些固定长度,如 char,这就是为什么它添加空格来满足它的长度
  • 是的...stackoverflow.com/questions/13269676/… 。如果To_Char( v_date,'fmDAY', 'nls_date_language=english') = 'TUESDAY' 是TRIM 的替代品
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-16
  • 2013-06-24
  • 2011-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多