Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
999 views
in Technique[技术] by (71.8m points)

plsql - the update query is not working in oracle sql developer , what is the error?

DECLARE
   @A varchar2(20);
BEGIN
     @A := 'abc555';

UPDATE TEST Set LINK = Replace(LINK,Substring(LINK,1,CHARINDEX('ESSAIS-CGMP',LINK)-1),@A);

END;

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You are using Oracle not SQL server.

SUBSTRING and CHARINDEX are not valid Oracle functions; you want SUBSTR and INSTR instead.

And, @ is not a valid first character for a non-quoted identifier, just use A rather than @A.

DECLARE
  A varchar2(20);
BEGIN
  A := 'abc555';

  UPDATE TEST
  Set LINK = Replace(LINK,Substr(LINK,1,INSTR(link,'ESSAIS-CGMP')-1),A);
END;
/

Then, for the sample data:

CREATE TABLE test ( link VARCHAR2(50) );

INSERT INTO test ( link ) VALUES ( 'hereESSAIS-CGMP' );

The result is:

SELECT * FROM test;
| LINK               |
| :----------------- |
| abc555ESSAIS-CGMP |

db<>fiddle here


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

57.0k users

...