触发在oracle2中乘以两列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了触发在oracle2中乘以两列相关的知识,希望对你有一定的参考价值。

create or replace trigger BAND_T BEFORE insert or update OF average_song_time, number_of_songs on BAND
for each row
declare
   average_song_time number;
    number_of_songs number;
begin
    if (:new.average_song_time * :new.number_of_songs > 100)  ;
        then 
        raise_application_error(error -2010'Play Time is too high');
    end if;
end;

/ 

想要在Oracle2中将两列相乘,当两列的值达到一定量时,我的触发器将被触发,只是想知道这个代码在哪里出错?

答案

你做了几个错误(不适合的分号,RAISE语句中的ERROR,这里没用的DECLARE部分)。

看看这样一个改进的代码是否能满足您的需求。

create or replace trigger band_t
  before insert or update of average_song_time, number_of_songs
  on band
  for each row
begin
  if :new.average_song_time * :new.number_of_songs > 100 then
     raise_application_error(-20001, 'Play time is too high');
  end if;
end;
/

以上是关于触发在oracle2中乘以两列的主要内容,如果未能解决你的问题,请参考以下文章

TypeError:不能将序列乘以“str”类型的非整数 - 将两列相乘后

如何设置 vscode 的代码片段,以便在自动完成后自动触发 vscode 的智能感知?

片段创建的 Intent 不会触发 onNewIntent

excel中怎么把一列的数值变成两列?

Pandas Python 中的条件乘法

查询添加两列的值