ORACLE变量定义问题

w3c113 2015-01-07 04:53:52
DECLARE
SN VARCHAR2(50);
SN1 VARCHAR2(50);
SN2 VARCHAR2(50);
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;
BEGIN
Insert into IQS.CP_POSITION (PID,POSTIONNAME,AUDIOFILEID,CREATOR,UPDATETIME,CREATETIME,AUDIOPLAYLANGUAGE,AUDIONAME) values ('4d2ca1e7-94c7-4b94-87de-9a425639307c','大堂经理',SN2,'ADMIN',sysdate,sysdate,SN,'大堂经理.wav@大堂经理(粤).wav');

END;


这样写执行会一直报错,之前没写过。求改正
报错如下:
在行 2 上开始执行命令时出错:
DECLARE
SN VARCHAR2(50);
SN1 VARCHAR2(50);
SN2 VARCHAR2(50);
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;
BEGIN
Insert into IQS.CP_POSITION (PID,POSTIONNAME,AUDIOFILEID,CREATOR,UPDATETIME,CREATETIME,AUDIOPLAYLANGUAGE,AUDIONAME) values ('4d2ca1e7-94c7-4b94-87de-9a425639307c','大堂经理',SN2,'ADMIN',sysdate,sysdate,SN,'大堂经理.wav@大堂经理(粤).wav');

END;
错误报告:
ORA-06550: 第 5 行, 第 9 列:
PLS-00103: 出现符号 "="在需要下列之一时:
:= . ( @ % ; not
null range default character
ORA-06550: 第 5 行, 第 72 列:
PLS-00103: 出现符号 ";"在需要下列之一时:
) , and or
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
...全文
242 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 2 楼 w3c113 的回复:
[quote=引用 1 楼 z_shousi 的回复:] 哪里来的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;
[/quote] 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的方式。
bw555 2015-01-08
  • 打赏
  • 举报
回复
从其他数据库转过来,刚做oracle的吧 可以百度下pl/sql语法,先学习下 oracle的语法和其他数据库还是很不一样的 你有其他数据库的底子,学起来应该不难
IceIsabel 2015-01-07
  • 打赏
  • 举报
回复
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; 这样写吧
w3c113 2015-01-07
  • 打赏
  • 举报
回复
引用 1 楼 z_shousi 的回复:
哪里来的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:
  • 打赏
  • 举报
回复
哪里来的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;

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧