字段别名里好像不能有&字符哦

解决方案 »

  1.   

    这下真不好办了,我本想从一个sql视图转到oracle视图中去,真的没有办法吗?谢谢楼上的
      

  2.   

    15:05:52 SQL> select empno as "P&E col" from scott.emp;     P&E col
    ------------
         7369.00
         7499.00
         7521.00
         7566.00
         7654.00
         7698.00
         7782.00
         7788.00
         7839.00
         7844.00
         7876.00
         7900.00
         7902.00
         7934.00
      

  3.   

    ‘&’ 符号是oarcle中的一个特殊字符,如果在语句中没有任何处理的话,数据库默认为是交互式的命令
    如:select empno as "P&E col" from scott.emp;
    执行的时候,会有提示 E为何值的窗口。
    所以,如果确实需要这个字符存在,可以用 ‘P'||'&'||'E COL '
    但如果作为字段别名处理,建议不要用“&”
      

  4.   

    楼上的把&作为字符串连接的方法可以解决这个问题
    也可以先执行 
    set define off;
    然后再执行select col1 as "P&E col" from table1
      

  5.   

    SQL*PLUS环境输入'&字符'的方法     2002-05 余枫

    我们知道在SQL*PLUS默认环境里会把'&字符'当成变量来处理.  有些时候我们也需要在SQL>的符号下输入'&字符', 只需要改变SQL*PLUS下一个环境变量define即可.

       SQL> set define off; 是把默认的&绑定变量的功能取消, 可以把'&字符'当成普通字符处理 SQL> set define on; 打开&绑定变量的功能, &后面的字符串当变量使用. SQL> show define; 查看当前SQL*PLUS的define状态

    举例说明:
            ---------------------------------------------------------------
    SQL> CREATE TABLE TEST3 ( 
       ID    NUMBER (2)    PRIMARY KEY, 
       NAME  VARCHAR2 (20));

    SQL> show define;
    define "&" (hex 26)  

    SQL> insert into test3 values(1,'sgs&a&n');
    Enter value for a: abc
    Enter value for n: 456
    old   1: insert into test3 values(1,'sgs&a&n')
    new   1: insert into test3 values(1,'sgsabc456') 1 row created. SQL> commit; Commit complete. SQL> set define off; SQL> insert into test3 values(2,'sgs&a&n');

    1 row created. SQL> commit; Commit complete. SQL> select * from test3;        ID NAME
            -- --------------------
             1 sgsabc456
             2 sgs&a&n
      

  6.   

    楼上兄弟们那么在FUNCTION 中不能用 set define off;怎么办呀,
      

  7.   

    作为字段别名,好像上面的都没什么用。但作为字符串是行的。我只能把&删除掉了。谢谢楼上的回答!