【问题标题】:/ in asked user input variable name - sql plus - oracle/ 在询问用户输入变量名 - sql plus - oracle
【发布时间】:2016-06-10 21:52:48
【问题描述】:

我正在尝试这样做:

     select * from tab where date= to_date('&date_dd/mm/yyyy','dd/mm/yyyy');

但它要求 'date_dd' 而不是 'date_dd/mm/yyyy'

如何转义/ 字符?我认为问题就在这里!

【问题讨论】:

  • 这不是有效的 SQL 语句...您是否尝试从表中选择与用户输入相同的所有日期?您期待什么样的用户输入?
  • 我只想这样,当我从输入中询问一个变量时,指定的变量名称必须包含一个 / 字符......不可能吗??
  • 为什么变量的name必须包含/?你能回答我的问题吗?您要从表中选择哪些数据?您希望用户输入什么?
  • 例如... 从选项卡中选择 'name','cod', '&DATA_dd/mm/yyyy';我想询问名称并向使用此查询的用户建议,他必须以 dd/mm/yyyy 格式插入日期...
  • 可能更容易提示类似:“请输入日期(dd/mm/yyyy):”

标签: oracle sqlplus


【解决方案1】:

您不能在变量名中包含此“/”,因此在您执行此操作时它不会出现在提示中。使用 Lajos 解决方案:

PROMPT Please enter the date with format dd/mm/yyyy:
select * from tab where date= to_date('&date','dd/mm/yyyy');

会这样问:

SQL> @my_script
Please enter the date with format dd/mm/yyyy:
Enter value for date:

您也可以使用ACCEPT,例如灵感来自例如Oracle SQL*Plus ACCEPT Statements

accept date PROMPT 'Please enter the date with format dd/mm/yyyy:'
select * from tab where date= to_date('&date','dd/mm/yyyy');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多