Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.0k 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 Answer

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...