软件环境: 
1、Windows NT4.0+ORACLE 8.0.4
2、ORACLE安装路径为:C:\ORANT实现方法: 
       SQL> select * from &table_name;
       为table_name输入值: dba_users
       原(值)   1: select * from &table_name
       新(值)   1: select * from dba_users       USERNAME  USER_ID PASSWORD           DEFAULT_TABLESPACE  TEMPORARY_TABLESPACE   CREATED     PROFILE
       -------- -------- ------------------ ------------------- ---------------------- ----------- -------
       SYS             0 65D95B5448E10E2E   SYSTEM              SYSTEM                 30-OCT-97   DEFAULT
       SYSTEM          5 D4DF7931AB130E37   USER_DATA           TEMPORARY_DATA         30-OCT-97   DEFAULT
       SCOTT          10 F894844C34402B67   USER_DATA           TEMPORARY_DATA         30-OCT-97   DEFAULT       查询到3记录.       SQL>  
阿木伯 著

解决方案 »

  1.   

    如何通过 SQL*PLUS 将符号 & 、'号(单引号) 插入ORACLE数据库的表中?  
    软件环境: 
    1、Windows NT4.0+ORACLE 8.0.4
    2、ORACLE安装路径为:C:\ORANT命令类型: 
    SQL> create table a(列1 varchar2(10));       --SQL> insert into a values('i''m good');       --两个''可以表示一个'SQL> insert into a values('i'||chr(39)||'m good'); --chr(39)代表字符'SQL> insert into a values('a'||'&'||'b');      --
    SQL> select *from a;                --和select * from a;效果一样列1
    ----------
    i'm good
    a&b
      

  2.   

    多谢!
    我用的是Report Builder 6i,下面这段SQL代码是我们原来的报表的SQL代码,
    select     substr(vendor_name,1,40),
                  vendor_id,
                  sum(amount_of_debit),
                  -sum(amount_of_credit),
                  sum(amount_of_debit+amount_of_credit) amount_of_net,
    0 beforenet
    from        ap_prepayment_view
    where      &p_seg_con
    and vendor_site_code<>'OFFICE'
    and vendor_site_code <>'办公室'
    and vendor_site_code<>'HOME'
     and account_date >= :p_date_begin
                   and account_date <= :p_date_end
    having sum(amount_of_debit+amount_of_credit)<>0
    group by  substr(vendor_name,1,40),
                   vendor_id
    可是,我也类似作
    SELECT * 
    FROM cst_item_costs
    WHERE &p_TEST
    却提示:ORA-00921 未预期的SQL命令结尾
    多谢请指教!
      

  3.   

    奇怪,用了这么年report builder,还真没见过这么用的!
    不知道&p_seg_con主要是干什么用的,你查一下。
    一般引入参数都是用:p_1之类的。
      

  4.   

    :P_1之类的引入参数,&把一个条件或语句作为参数.
    select * from fnd_user a where 1=1 and a.user_name=:p_1
    select * from fnd_user aa where 1=1 &p_1 if ..... then 
        &p_1:=' and aa.user_name like ''D%'' '
    else
        &p_1:=' and aa.user_name like ''F%'' '
    end if;
      

  5.   

    是不是先要定义这个&p_1参数?
    这样写
    SELECT * 
    FROM cst_item_costs
    WHERE 
     1=1
    and &p_TEST
    提示:ORA-00921 未预期的SQL命令结尾这样写
    SELECT * 
    FROM cst_item_costs
    WHERE  
      &p_TEST
    and 1=1提示:ORA-00936 缺少表达式还请楼上具体指示如何应用,多谢!
      

  6.   

    dinya2004(dinya) 同学,在REPORT BULDER中如何定义&p_1
    我也想知道!
    新建用户参数只有建成:p_1型的,那是需要:p_1 = ??的形式。
    不知道还有什么地方可以建立&p_1型的,很好奇。
      

  7.   

    select * from fnd_user where 1=1 &p_1
    在这句中,没有and 语句,运行的时候要求输入一句话.来做位条件.如给p_1参数赋值:
    :p_1:=' and user_name=''DINYA2003'' '整个语句就变成了
    select * from fnd_user where 1=1 and user_name='DINYA2003'
    如果输入的语句为:p_1:=' user_name=''DINYA2003'' '  丢了and ,则在运行的时候会出错.
    在报表中建参数的时候所建参数和:p_1是一样的,但是要把p_1参数设置为character类型,长度根据自己需要定,但是上面的语句却不能用下面的写法:select * from fnd_user where 1=1 :p_1  --这样是错误的,我一直都在用&p_1
      

  8.   

    参数p_1
    需求:输入1  选出用户中T开头的用户名,并且用户名为'TOM AND JERRY'  
         输入0  选出用户中T开头的用户名,或者用户名为'TOM AND JERRY'  
    方法一:
    select * from fnd_user a where (a.user_name like 'T%' and a.user_name='TOM AND JERRY') and :p_1=1
    union 
    select * from fnd_user a where (a.user_name like 'T%' or a.user_name ='TOM AND JERRY') and :p_1=0方法二:
    需要再建一个参数:p_2
    select * from fnd_user a where a.user_name like 'T%' &p_2      --注意这里的参数!然后可以在pl/sql程序里这么写
    ...
    begin
       if :p_1=1 then 
         :p_2:=' and a.user_name=''TOM AND JERRY'' '
       elsif :p_1=0
         :p_2:=' or a.user_name =''TOM AND JERRY'' '
       else
         :p_2:=' and a.user_id<0 '
       end if:
    end;方法三:
    .........以上仅用于举例说明问题
      

  9.   

    我也遇到这样的问题,在插入字符串时,遇到字符'&',老抱错