是不是环境不一样造成的,我们的其中一个环境也是可以的,而测试环境不行。 两边的表结构,索引,授权这些都是一样的, 不能SELECT到记录它应该会报:ORA-01403: 未找到数据 ORA-06512: 在line 5我把正式环境的这个PROCEDURE拷到测试环境执行一样编译不通过。报错:LINE/COL ERROR -------- ------------------------------------------------- 20/16 PLS-00103: 出现符号 ","在需要下列之一时: from 20/32 PLS-00103: 出现符号 ","在需要下列之一时: from
YEAR VARCHAR2(4) MONTH VARCHAR2(2) 没有什么特殊字符啊,我做下边的操作能成功的:SELECT YEAR, MONTH FROM BASE_SERIALNO WHERE ROWNUM = 1;YEAR MONTH ---- ----- 2002 11
你把过程中的所有的空格和符号“‘”“,” 重新用半角字符输入。然后运行。SQL> DECLARE 2 A VARCHAR2(10); 3 B VARCHAR2(10); 4 BEGIN 5 SELECT NVL('sss', 'ny'),NVL('AAAA','NC') INTO A, B 6 FROM dual; 7 END; 8 /PL/SQL procedure successfully completed.
to:jsnicle(js_nicle),问题应该不是全角半角的原因,可能是出在MONTH和YEAR上。to: ORARichard(没钱的日子......) 我是在PL/SQL DEVELPER 中做的,但在SQLPLUS中执行也报错,代码是没有问题,因为我在另一环境中运行正常。所以我觉得是不是环境那儿设置的不同,请大家支支招。sqlplus运行: SQL> DECLARE 2 A VARCHAR2(10); 3 B VARCHAR2(10); 4 BEGIN 5 SELECT NVL(YEAR, 'ny'), NVL(MONTH, 'nm') 6 INTO a, b 7 FROM BASE_SERIALNO 8 WHERE ROWNUM =1; 9 END; 10 / SELECT NVL(YEAR, 'ny'), NVL(MONTH, 'nm') * ERROR 位于第 5 行: ORA-06550: 第 5 行, 第 18 列: PLS-00103: 出现符号 ","在需要下列之一时: from ORA-06550: 第 5 行, 第 36 列: PLS-00103: 出现符号 ","在需要下列之一时: from
确实是MONTH和YEAR的问题 DECLARE A VARCHAR2(10); B VARCHAR2(10); BEGIN SELECT NVL("YEAR", 'ny'), NVL("MONTH", 'nm') INTO a, b FROM BASE_SERIALNO WHERE ROWNUM =1; END; / 这样就没问题了
不能select到记录不是这样的错误提示巴
或者说year,month中有特殊字符
两边的表结构,索引,授权这些都是一样的,
不能SELECT到记录它应该会报:ORA-01403: 未找到数据
ORA-06512: 在line 5我把正式环境的这个PROCEDURE拷到测试环境执行一样编译不通过。报错:LINE/COL ERROR
-------- -------------------------------------------------
20/16 PLS-00103: 出现符号 ","在需要下列之一时: from
20/32 PLS-00103: 出现符号 ","在需要下列之一时: from
MONTH VARCHAR2(2)
没有什么特殊字符啊,我做下边的操作能成功的:SELECT YEAR, MONTH FROM BASE_SERIALNO WHERE ROWNUM = 1;YEAR MONTH
---- -----
2002 11
重新用半角字符输入。然后运行。SQL> DECLARE
2 A VARCHAR2(10);
3 B VARCHAR2(10);
4 BEGIN
5 SELECT NVL('sss', 'ny'),NVL('AAAA','NC') INTO A, B
6 FROM dual;
7 END;
8 /PL/SQL procedure successfully completed.
你这段代码不是在SQLPLUS中做的吧。在SQLPLUS中做做看,再贴出错误信息。就代码本身而言看不出问题,我怎么试也试不出你的错误信息。
SQL> DECLARE
2 A VARCHAR2(10);
3 B VARCHAR2(10);
4 BEGIN
5 SELECT NVL(YEAR, 'ny'), NVL(MONTH, 'nm')
6 INTO a, b
7 FROM BASE_SERIALNO
8 WHERE ROWNUM =1;
9 END;
10 /
SELECT NVL(YEAR, 'ny'), NVL(MONTH, 'nm')
*
ERROR 位于第 5 行:
ORA-06550: 第 5 行, 第 18 列:
PLS-00103: 出现符号 ","在需要下列之一时:
from
ORA-06550: 第 5 行, 第 36 列:
PLS-00103: 出现符号 ","在需要下列之一时:
from
DECLARE
A VARCHAR2(10);
B VARCHAR2(10);
BEGIN
SELECT NVL("YEAR", 'ny'), NVL("MONTH", 'nm')
INTO a, b
FROM BASE_SERIALNO
WHERE ROWNUM =1;
END;
/
这样就没问题了
show all
看看有什么项不一样
SELECT YEAR, MONTH FROM BASE_SERIALNO WHERE ROWNUM = 1;
SELECT year, month FROM BASE_SERIALNO WHERE ROWNUM = 1;
SELECT BASE_SERIALNO.YEAR, BASE_SERIALNO.MONTH FROM BASE_SERIALNO WHERE ROWNUM = 1;TO:ORARichard(没钱的日子......) SHOW ALL后的数据只有release不同
能运行上面SQL的环境: release 801070100
不能运行上面SQL的环境:release 801070000
不知道是不是这个原因?
顺便再问你一下:(,SHOW ALL后出来参数有 instance "local" ,我想问这个instance 的值怎么会是"local",而不是我的数据库实例名 HHDVP ??