doumenshi1475 2017-02-25 08:12
浏览 48
已采纳

如何在ORACLE SQL PROCEDURE中操作“if condition”?

I am using ORACLE 10g & PHP codeigniter for my application. I have a procedure defined like this:-

CREATE OR REPLACE PROCEDURE 
        insertMovie (id IN NUMBER, title IN VARCHAR2, 
            sdate IN DATE, edate IN DATE,
                        image IN VARCHAR2, add_date IN DATE,
            message OUT NUMBER) 
    AS
        BEGIN
            INSERT INTO tbl_movie (movie_id, movie_title, movie_sdate, movie_edate, movie_image, movie_add_date) 
            VALUES ( id, 'title', to_date('sdate', 'yyyy-mm-dd hh24:mi:ss'), to_date('edate', 'yyyy-mm-dd hh24:mi:ss'), 'movie_image', to_date('add_date', 'yyyy-mm-dd hh24:mi:ss'));
            message:= 1;
        END;
/

Now, I want a if condition to return either 1 or 0. If insert will be successful, message will be 1. If insert fails. message will be 0.

How can I do that?

  • 写回答

1条回答 默认 最新

  • ds15812330851 2017-02-25 08:24
    关注

    You can use the EXCEPTION block to trap any exceptions occured while executing the proc and set message to 0.

    CREATE OR REPLACE PROCEDURE 
            insertMovie (id IN OUT NUMBER, title IN VARCHAR2, 
                sdate IN DATE, edate IN DATE,
                            image IN VARCHAR2, add_date IN DATE,
                message OUT NUMBER) 
        AS
            BEGIN
                IF ID is NULL THEN
                   ID := SOME_SEQUENCE.NEXTVAL;
                END IF;
                INSERT INTO tbl_movie (movie_id, movie_title, movie_sdate, movie_edate, movie_image, movie_add_date) 
                VALUES ( id, 'title', to_date('sdate', 'yyyy-mm-dd hh24:mi:ss'), to_date('edate', 'yyyy-mm-dd hh24:mi:ss'), 'movie_image', to_date('add_date', 'yyyy-mm-dd hh24:mi:ss'));
                message := 1;
            EXCEPTION
              WHEN OTHERS THEN
                message := 0;
            END;
    /
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败