哪里来的SET... SET SN=(SELECT SER_NO FROM UPLOAD WHERE FILE_NAME='大堂经理.wav'); SET SN1=(SELECT SER_NO FROM UPLOAD WHERE FILE_NAME='大堂经理(粤).wav'); SET SN2= SN+'@'+SN1; 正确的变量赋值 SN:=(SELECT SER_NO FROM UPLOAD WHERE FILE_NAME='大堂经理.wav'); SN1:=(SELECT SER_NO FROM UPLOAD WHERE FILE_NAME='大堂经理(粤).wav'); SN2:= SN||'@'||SN1;
在行 9 上开始执行命令时出错: DECLARE SN VARCHAR2(50); SN1 VARCHAR2(50); SN2 VARCHAR2(50); SN:=(SELECT SER_NO FROM UPLOAD WHERE FILE_NAME='大堂经理.wav'); SN1:=(SELECT SER_NO FROM UPLOAD WHERE FILE_NAME='大堂经理(粤).wav'); SN2:= SN||'@'||SN1; BEGIN Insert into IQS.CP_POSITION (PID,POSTIONNAME,AUDIOFILEID,CREATOR,UPDATETIME,CREATETIME,AUDIOPLAYLANGUAGE,AUDIONAME) values ('4d2ca1e7-94c7-4b94-87de-9a425639307c','大堂经理',SN2,'ADMIN',sysdate,sysdate,'0@1','大堂经理.wav@大堂经理(粤).wav'); END; 错误报告: ORA-06550: 第 5 行, 第 5 列: PLS-00103: 出现符号 "="在需要下列之一时: constant exception <an identifier> <a double-quoted delimited-identifier> table long double ref char time timestamp interval date binary national character nchar 06550. 00000 - "line %s, column %s:\n%s" *Cause: Usually a PL/SQL compilation error. *Action:
DECLARE SN VARCHAR2(50); SN1 VARCHAR2(50); SN2 VARCHAR2(50); BEGIN SELECT SER_NO INTO SN FROM UPLOAD WHERE FILE_NAME='大堂经理.wav' ; SELECT SER_NO INTO SN1 FROM UPLOAD WHERE FILE_NAME='大堂经理(粤).wav'; SN2:= SN||'@'||SN1; Insert into IQS.CP_POSITION (PID,POSTIONNAME,AUDIOFILEID,CREATOR,UPDATETIME,CREATETIME,AUDIOPLAYLANGUAGE,AUDIONAME) values ('4d2ca1e7-94c7-4b94-87de-9a425639307c','大堂经理',SN2,'ADMIN',sysdate,sysdate,'0@1','大堂经理.wav@大堂经理(粤).wav'); END; 这样写吧
SELECT SER_NO INTO SN FROM UPLOAD WHERE FILE_NAME='大堂经理.wav'; SELECT SER_NO INTO SN1 FROM UPLOAD WHERE FILE_NAME='大堂经理(粤).wav'; SN2:= SN+'@'+SN1;select into方式赋值 前面。楼上说的不错,慢慢习惯Oracle的方式。
SET SN1=(SELECT SER_NO FROM UPLOAD WHERE FILE_NAME='大堂经理(粤).wav');
SET SN2= SN+'@'+SN1;
正确的变量赋值 SN:=(SELECT SER_NO FROM UPLOAD WHERE FILE_NAME='大堂经理.wav');
SN1:=(SELECT SER_NO FROM UPLOAD WHERE FILE_NAME='大堂经理(粤).wav');
SN2:= SN||'@'||SN1;
DECLARE
SN VARCHAR2(50);
SN1 VARCHAR2(50);
SN2 VARCHAR2(50);
SN:=(SELECT SER_NO FROM UPLOAD WHERE FILE_NAME='大堂经理.wav');
SN1:=(SELECT SER_NO FROM UPLOAD WHERE FILE_NAME='大堂经理(粤).wav');
SN2:= SN||'@'||SN1;
BEGIN
Insert into IQS.CP_POSITION (PID,POSTIONNAME,AUDIOFILEID,CREATOR,UPDATETIME,CREATETIME,AUDIOPLAYLANGUAGE,AUDIONAME) values ('4d2ca1e7-94c7-4b94-87de-9a425639307c','大堂经理',SN2,'ADMIN',sysdate,sysdate,'0@1','大堂经理.wav@大堂经理(粤).wav');
END;
错误报告:
ORA-06550: 第 5 行, 第 5 列:
PLS-00103: 出现符号 "="在需要下列之一时:
constant
exception <an identifier>
<a double-quoted delimited-identifier> table long double ref
char time timestamp interval date binary national character
nchar
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
SN VARCHAR2(50);
SN1 VARCHAR2(50);
SN2 VARCHAR2(50);
BEGIN
SELECT SER_NO
INTO SN
FROM UPLOAD
WHERE FILE_NAME='大堂经理.wav' ;
SELECT SER_NO
INTO SN1
FROM UPLOAD
WHERE FILE_NAME='大堂经理(粤).wav';
SN2:= SN||'@'||SN1;
Insert into IQS.CP_POSITION (PID,POSTIONNAME,AUDIOFILEID,CREATOR,UPDATETIME,CREATETIME,AUDIOPLAYLANGUAGE,AUDIONAME) values ('4d2ca1e7-94c7-4b94-87de-9a425639307c','大堂经理',SN2,'ADMIN',sysdate,sysdate,'0@1','大堂经理.wav@大堂经理(粤).wav');
END;
这样写吧
可以百度下pl/sql语法,先学习下
oracle的语法和其他数据库还是很不一样的
你有其他数据库的底子,学起来应该不难
SELECT SER_NO INTO SN FROM UPLOAD WHERE FILE_NAME='大堂经理.wav';
SELECT SER_NO INTO SN1 FROM UPLOAD WHERE FILE_NAME='大堂经理(粤).wav';
SN2:= SN+'@'+SN1;select into方式赋值 前面。楼上说的不错,慢慢习惯Oracle的方式。