Oracle 插入where子句

Oracle 插入where子句,oracle,plsql,oracleforms,Oracle,Plsql,Oracleforms,我知道这不适用于克劳斯,这是一个详细的街区,请帮帮我,我做了什么,但对我不起作用,请帮帮我 INSERT INTO LOOPT2 (TOKEN_STATUS) VALUES (1) where Token_NO = :Token_No; 似乎您需要一个if语句,例如: DECLARE TOKEN_NO NUMBER; TOKEN_STATUS1 NUMBER; BEGIN GO_BLOCK('TOKEN_REC2'); FIRST_RECORD; LOOP

我知道这不适用于克劳斯,这是一个详细的街区,请帮帮我,我做了什么,但对我不起作用,请帮帮我

INSERT INTO LOOPT2 (TOKEN_STATUS) 
      VALUES (1) where Token_NO = :Token_No;

似乎您需要一个
if
语句,例如:

DECLARE 
  TOKEN_NO NUMBER;
  TOKEN_STATUS1 NUMBER;
BEGIN
  GO_BLOCK('TOKEN_REC2');
  FIRST_RECORD; 

 LOOP
  BEGIN
     SELECT SR_NO, TOKEN_STATUS 
       INTO TOKEN_NO, TOKEN_STATUS1 
       FROM LOOPT2 
      WHERE TOKEN_STATUS = :TOKEN_NO 
        AND V_ID=1;

   EXCEPTION
   WHEN NO_DATA_FOUND THEN
    INSERT INTO LOOPT2 (TOKEN_STATUS) 
      VALUES (1);
  END;

    EXIT WHEN :SYSTEM.LAST_RECORD = 'TRUE';
    NEXT_RECORD;
 END LOOP;  

  COMMIT;
END;
或表格:


有没有人能回答这个问题:(你能详细说明你的问题吗?你的问题太模糊了。你想更新列
TOKEN\u STATUS
,其中TOKEN\u no可用,如果不可用,则插入?感谢barbaros,我有一个表loopt2,其中列sr\u no等于TOKEN\u no,其中包含数据,因为我将在表单详细信息块中键入,并且TOKEN STATUS没有y数据我想在提交表单时将该列更新为1,并将令牌状态更改为1其中sr_no=:token_no
update LOOPT2 SET token_status=1其中sr_no=:token_no
是您想要的全部吗?可能没有PL/SQL?亲爱的@MaheswaranRavisankar我这样做了,但没有为我工作
update LOOPT2 SET LOOPT2.sr no=:TOKEN\u REC2.TOKEN\u NO;COMMIT;
谢谢barbaros我尝试了这两种方法,但不幸的是对我无效任何建议一件事是找不到任何数据,但我在SR\u中有相同的数据没有,但不在TOKEN\u状态是否有任何对我有效的方法sql%找到了,但在编译时提供了错误@user2943102。你确定
TOKEN\u NO=:TOKEN\u NO
排序规则还是应该是
TOKEN\u STATUS1=:TOKEN\u NO
?顺便说一句,在
End
之前执行
Commit
。哦,你是对的,where子句是
TOKEN\u NO=:TOKEN\u NO
不是TOKEN状态我已更改但未工作
..
EXCEPTION
  WHEN NO_DATA_FOUND THEN
   IF ( TOKEN_NO = :TOKEN_NO ) THEN
    INSERT INTO LOOPT2 (TOKEN_STATUS) 
      VALUES (1);
   END IF;
  END;
..
..
EXCEPTION
  WHEN NO_DATA_FOUND THEN
    INSERT INTO LOOPT2 (TOKEN_STATUS) 
    SELECT 1 FROM DUAL WHERE TOKEN_NO = :TOKEN_NO;
  END;
..