简体   繁体   English

oracle插入语句错误

[英]Error in oracle insert statement

I am new to SQL. 我是SQL新手。 I have written procedure to save data in db. 我编写了将数据保存在db中的过程。 And from SQL I am trying to call the this procedure to save data. 从SQL,我试图调用此过程来保存数据。 But getting sql error > ORA-00900: invalid SQL statement . 但是出现SQL错误> ORA-00900: invalid SQL statement Can anyone please help me with this error? 谁能帮我解决这个错误? Here is my attempt: 这是我的尝试:

My procedure >>> 我的程序>>>

PROCEDURE NEW_USER
(
    IN_CREATED_BY               IN VARCHAR2,
    IN_MODIFIED_BY                         IN VARCHAR2,
    IN_USERNAME                            IN VARCHAR2
)
AS
    L_USER_ID INTEGER;
    N_USER_ID  INTEGER := hibernate_sequence.NEXTVAL;
BEGIN
    SELECT case 
         when exists( SELECT USER_ID FROM T_MT_USER WHERE USERNAME = IN_USERNAME )
         then 
              (SELECT USER_ID FROM T_MT_USER WHERE USERNAME = IN_USERNAME)
         else 0
       end  into L_USER_ID
      FROM dual;

    IF (L_USER_ID = 0) THEN
    INSERT INTO T_MT_USER
    (USER_ID, ACCOUNT_EXPIRED_FLG, ACCOUNT_LOCKED_FLG, created_by, CREATED_TS, ACTIVE_FLG, end_effective_dt, modified_by, MODIFIED_TS, "password", password_expired, start_effective_dt, username) 
    VALUES
    (N_USER_ID, 0, 0, IN_CREATED_BY, SYSTIMESTAMP, 1, NULL, IN_MODIFIED_BY, SYSTIMESTAMP, '$2a$10$3hoAeeVJ0AG.CQS2xX8rT.wUlt1rjoiYsHW0YflZEiQ5QYzG4HpYi', 0, SYSTIMESTAMP, IN_USERNAME);
     END IF;
EXCEPTION
    WHEN OTHERS THEN
        log_api.fatal(log_ctx,'Exception in NEW_USER');
        RAISE;
END NEW_USER;

And my call in sql >> 而我在sql中的调用>>

USER_DEMO.NEW_USER('sbappi','sbappi','sumon5');

正如上面注释中a_horse_with_no_name所建议的那样,以下代码对我来说正常工作>>>

execute USER_DEMO.NEW_USER('sbappi','sbappi','sumon5');

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM