0

特定の定義を持つ既存のテーブルに列を追加するにはどうすればよいですか。たとえば、hire_dateという列を持つemployeeというテーブルがあります。ここで、alterとonly alterを使用して、(hire_dateと14-JULY-2012)の違いを含むtenureという列を追加したいと思います。これはiveが試したものです

alter table employee add(tenure numeric(10) where tenure=(select to_date(
'14-JULY-2012')-HIRE_DATE from employee));
4

2 に答える 2

1

11gから、これは機能するはずです。

ALTER TABLE employee 
 ADD tenure GENERATED ALWAYS 
   AS (TO_DATE('20120714','YYYYMMDD') - hire_date) VIRTUAL
于 2012-07-17T07:55:30.987 に答える
1

新しい列は既存の列から派生できるため、テーブルに追加しません。派生列の一貫性を保つのは大変な作業であり、より良い代替手段があります。

代わりに、列を追加するビューを作成できます。

create view ViewName as
select  hire_date
,       hire_date - TO_DATE('20120714','YYYYMMDD') as DaysSinceJuly14th
,       ... other columns ...
from    employees

または、任意のselectステートメントでその場で計算を行うことができます。

select  hire_date - TO_DATE('20120714','YYYYMMDD') as DaysSinceJuly14th
from    employees
where   name = 'Jones' 
于 2012-07-17T07:55:31.520 に答える