软件环境:
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、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>
阿木伯 著
解决方案 »
- Oracle语法问题
- sqlplus中执行PL/SQL脚本的问题
- oracle 9i点击安装没有反应?????
- Oracle 中将一个表中的多条数据合并为一条数据
- oracle 時間小問題~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 困惑本人好久的高难度问题!!!在不安装任何oracle驱动的客户端程序里插入一行记录后马上返回ROWID的问题
- 大家好啊 一個個很急的問題
- win98上能装oracle9i吗?
- 创建触发器,禁止更新数据,并且记录数据,求大神指导!
- 关于oracle 导入导出
- 紧急救援:我这一简单变量怎么传不过去值呢?
- 怎么判断表、dblink等存在?
软件环境:
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
我用的是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命令结尾
多谢请指教!
不知道&p_seg_con主要是干什么用的,你查一下。
一般引入参数都是用: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;
这样写
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 缺少表达式还请楼上具体指示如何应用,多谢!
我也想知道!
新建用户参数只有建成:p_1型的,那是需要:p_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
需求:输入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;方法三:
.........以上仅用于举例说明问题