Oracle10gを使用してテーブルを作るところなのですが、タイムスタンプをOracle側で自動的に挿入することは可能でしょうか?
つまり
CREATE TABLE TEST (
ID NUMBER PRIMARY KEY,
NAME VARCHAR(10),
ENTRY TIMESTAMP
);
というテーブルを作成した場合、データをinsertする際にOracleが勝手にその瞬間の時間を格納するようにしたいです。
insert into test values (1, 'taro');
とすると1, 'taro', 現在時刻がデータベースに格納される。。

初心者ですみませんがご存知の方いらっしゃいましたらご教示下さい。
宜しくお願いします。

A 回答 (1件)

CREATE TABLE TEST (


デフォルト設定をしましょう。
DEFAULT systimestampをつけてあげればOKです。

ID NUMBER PRIMARY KEY,
NAME VARCHAR(10),
ENTRY TIMESTAMP DEFAULT systimestamp
);

表が作成されました。

SQL> insert into test (id,name) values (1, 'taro');

1行が作成されました。

SQL> select * from test;
ID NAME ENTRY
---------- ---------- ---------------------------------------------------------------------------
1 taro 09-05-27 10:58:24.567349
    • good
    • 0
この回答へのお礼

出来ました。有り難うございました。

お礼日時:2009/05/27 12:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QPC連動タップを液晶テレビ周りの連動ON/OFF用途に使いたいのですが

PC連動タップを液晶テレビ周りの連動ON/OFF用途に使いたいのですが
テレビ周りのオーディオ・プレイヤーの自動電源ON/OFFにPC連動タップを使用して
自動ON/OFFと考えているんのですが、本来のPC用途とはかけ離れてますが
使用上問題はないでしょうか?

Aベストアンサー

問題はありません、構造上では普通のモノよりは性能が高いはずですから、
蛸足をしない限りは問題はありません。
自分もPCショップや量販店など、製造メーカーに問い合わせをした所では、
「問題は無い」との回答されました。

Qoracleのsqlについて質問です。 TESTというテーブルがあり、その項目には時間と名前と値があ

oracleのsqlについて質問です。
TESTというテーブルがあり、その項目には時間と名前と値があります。

[TESTテーブル]
TIME NAME ATAI
--------------------
06:00 A 2
08:00 B 3
05:00 C 1
06:00 C 4
06:00 A 2

select文で現在は以下の条件でspoolしてログ出力させているのですが、
select name,avg(ATAI)
from TEST
where TIME >= 06:00
and TIME < 07:00
and NAME in(A,B,C)
group by NAME;

上記の結果が、
NAME ATAI
--------------
A 2
C 4

となり、NAMEのBが出力しない状態です。
ログ出力させたから、その後でエクセルのマクロで集計をするのですが、毎回Bを手で入力してからマクロを実行してと大変なため、

NAME ATAI
--------------
A 2
B 0
C 4

のように上記のwhereの条件にあってなくてもNAMEを強制的に表示させることは可能でしょうか?

oracleは11g
OSはlinuxです。

どなたかわかる方、いらっしゃいましたらご教授お願い致します。

oracleのsqlについて質問です。
TESTというテーブルがあり、その項目には時間と名前と値があります。

[TESTテーブル]
TIME NAME ATAI
--------------------
06:00 A 2
08:00 B 3
05:00 C 1
06:00 C 4
06:00 A 2

select文で現在は以下の条件でspoolしてログ出力させているのですが、
select ...続きを読む

Aベストアンサー

NAME自体を正規化していないのでしょうか?

もしそうであれば、発行したSQLにTESTテーブルに対して
(SELECT DISTINCT NAME FROM TEST)をサブクエリで
RIGHT JOINしてみてはいかがでしょうか?

Qタップに詳しい方 おおしえください。

自動機で下穴をあけた後タップをとうしました。バリが出たため ハンドドリルでタップをとうしたのですが、ネジ山が二重になったり、ハ゛リもでてしまいました、油を付けながら 逆回転させながら 慎重に入れ 軽く入ったつもりですが、だめです。どうしてですか、おしえてください。再、再、回答できる方おねがいします。

Aベストアンサー

acha51補足です

質問を読み返してみるとタップも自動機で切った後の事でしょうか。
出るバリは表面だったら先の回答のバリ取り
ねじ山のバリだったら、
・自動機のタップへたりの場合はタップを交換し新規にやり直しましょう
・制御プログラムの場合は回転数と送りの関係を見直しましょう。
・わずかな場合はsusなどの固い材料のボルトを2-3回通す
・多いバリだったら先の1-3番をタップハンドルで順に通す
  職人技ですのでトレーニングしてやります

いずれにしても材料と深さ、径くらいははっきり書いた方が良いでしょう

Qoracle,sql-server,DB2,フリーDB

oracle 10g
sql-server 2005
DB2
フリーDB(mysqlなど)
はどれがいいでしょうか?

一応3年ぐらい前までは開発現場にいたので一通り知っています。
すべて経験ありますが管理はしたことはありません。

価格ならフリーが一番でしょう。信頼性で言うとoracle
でもコストが高い。
MSとくっつくならsql-serverだと思うのですが。

まだ社内でどの程度の規模になるかも把握し切れていませんが、
やはり無難にoraが一番でしょうか??
後々に業務システムの開発をします。
javaにするかVB,delphiなどにするかも決まってません。

DB2なら一応資格も持っているんですけどね。

管理、構築の容易さなどそれぞれの特徴も教えてください。

Aベストアンサー

経験がないとOracleは管理が難しいような気がします。
もちろん便利なツールとか沢山でてますけどね。
技術者が沢山いて、経験則があるものの選択が一番無難であると考えます。

QPC連動タップについて

こんにちは

私はADSLモデム、ルーター及びプリンタの3種類の周辺機器をパソコンのON/OFFと連動してON/OFFしたいと考えています。(通常はパソコン及びこれら周辺機器の電源はOFFにしておき、パソコンを立ち上げると自動的に周辺機器の電源もONになり使える状態になる様にしたい)

ここで各メーカーから発売されているPC運動タップについて質問なのですが、このタップにこれら周辺機器をつなげば上述の私のやりたい事が実現するのでしょうか?(特に私が知りたいことは、PC運動タップは、単にタップを通電させるだけでなく、それにつながったパソコン周辺機器自体の電子スイッチをONにして周辺機器を使える状態にさせることが可能かどうかという点です。(機械式(手動式)スイッチ付タップとは違うか?という点です)

実際にPC運動タップを使用し周辺機器のPC運動起動を実現されている方がいらっしゃったらぜひ教えて下さい。

よろしくお願いします。

Aベストアンサー

PC連動タップは、「PC専用コンセント」に接続されたPCの電源が入って電流が流れると、他の「連動コンセント」がONになる仕組みです。
http://www.sanwa.co.jp/product/oatap/rendo.html

連動させるには電源スイッチがONの状態で、「コンセントを差せば電源が入る」周辺装置でないと使用できません。
(コンセントを差した後、onのボタンを押さないといけないプリンタは×です)

QOracle8,9で取得したデータを結合するには?Oracleで取ったデータをExcelに出力するには?

こんにちは。PRGで行き詰まってしまい皆様のお知恵を借りたいと思い投稿しました。
まだOracle初心者のへっぽこシステム管理ですが、お上よりDB(Oracel)からある条件でデータを取って来て
Excelに出力してほしいと頼まれました・・

生産実績管理サーバー(Oracel9)の実績テーブルには、
生産日|工場No.|商品名|機械No.|生産数|
4/1|100|ケーキ|A|100|
4/1|100|ケーキ|A|120|
4/1|100|チョコ|A|150|

生産計画目標サーバー(Oracel8)の計画目標テーブルには、
機械で出来る計画能力が入っております
工場No.|商品名|機械No.|計画生産数|
100|ケーキ|A|150|
100|チョコ|A|150|

上記のテーブルのデータをVBでoo4oで接続して、Excelに出力したのです。
Excelへの完成一覧表は、条件で生産日を4/1で、工場を100で、
商品名|機械No.|生産数|計画生産数|
ケーキ|A|220|150|
チョコ|A|150|150|
にしたいのです。

【VB】
Set oraSes = CreateObject("OracleInProcServer.XOraSession")
Set ora9 = oraSes.OpenDatabase("実績","実績/実績”,0&)
Set ora8 = oraSes.OpenDatabase("計画","計画/計画”,0&)

strSQL1 = "select 商品名,機械No.,Sum(生産数) from 実績 " & _
"where 生産日='4/1' and 工場名='100' "
"group by 商品名,機械No. order by 商品名,機械No."
Set oraDs9 = ora9.DbCreateDynaset(strSQL1,4&)

strSQL2 ="select * from 計画目標"
Set oraDs8 = ora8.DbCreateDynaset(strSQL2,4&)

Excel起動(省略)
Excelに書き込む・・・・

これが現在までのPRGなのですが、oraDs9で取得して来た商品名と機械No.をKeyにして
Oracel8の計画目標テーブルから計画生産数を取得、それを結合して、一気にExcelに書き出したいのです。
oraDs9の商品名と機械No.を配列変数に入れて、Doでora8へSQL文を回すようなやりかたはあまりしたくないのです。
Oracleで一気に検索して、上記の欲しい一覧表を取得できたら最高なのですが・・・・
またExcelに書き出す方法は、ExcelでoraDs8をDo~Loopで書き出していくしか無いのでしょうか?
書き出すサンプルソース・参考になるようなものがありましたら教えて下さい。
もしOracelで、一気にExcelに書き出せる方法がありましたら教えて下さい。

色々と聞いてしまって申し訳ございませんが、何卒宜しくお願いします。

こんにちは。PRGで行き詰まってしまい皆様のお知恵を借りたいと思い投稿しました。
まだOracle初心者のへっぽこシステム管理ですが、お上よりDB(Oracel)からある条件でデータを取って来て
Excelに出力してほしいと頼まれました・・

生産実績管理サーバー(Oracel9)の実績テーブルには、
生産日|工場No.|商品名|機械No.|生産数|
4/1|100|ケーキ|A|100|
4/1|100|ケーキ|A|120|
4/1|100|チョコ|A|150|

生産計画目標サーバー(Oracel8)の計画目標テーブルには、
機械で出来る計画能...続きを読む

Aベストアンサー

異なるデータベース間のデータを使用する方法は以下があります。
(1)データベースリンクを使用する
(2)ファイル経由でどちらかのDBに必要なデータを集める。

データウェアハウスを構築するなら相互参照可能な環境を構築すべきです。

それが出来れば、UNIONなりジョインなりで集計可能でしょう。

あと、計画と実績って、オーダーに対して発生しますが、
以下のような場合を考慮できているんでしょうか。

オーダーA
■ケーキを4/1に1000個作る計画
■それに対して4/1に500個の実績、4/2に500個(計画遅れ)の実績

オーダーB
★ケーキを4/2に1000個作る計画
★それに対して4/2に500個の実績、4/9に500個(計画遅れ)の実績

これを日単位の集計のみで見てもあまり意味がないと思います。

以下のように累計で集計した上でZグラフで見ないと
計画の進捗率などは把握できないと思います。

日  計画  実績 計画累計 実績累計
--------------------------------------------
4/1 1000  500  1000   500
4/2 1000  1000 2000   1500
4/9 -   500  2000   2000

4/2の実績はオーダーAの計画が1000に対してAとBの実績が合算して1000になっており、計画通りに見えてしまいます。
※累計でみると4/2は500個の遅れが発生してます。

私が関わったシステムと考え方やデータの持ち方が異なっていて
問題がなければいいのですが。

異なるデータベース間のデータを使用する方法は以下があります。
(1)データベースリンクを使用する
(2)ファイル経由でどちらかのDBに必要なデータを集める。

データウェアハウスを構築するなら相互参照可能な環境を構築すべきです。

それが出来れば、UNIONなりジョインなりで集計可能でしょう。

あと、計画と実績って、オーダーに対して発生しますが、
以下のような場合を考慮できているんでしょうか。

オーダーA
■ケーキを4/1に1000個作る計画
■それに対して4/1に500個の実績、4/2に500個(計画...続きを読む

QHSHギターのタップ

 HSHギターのタップですが、5wayセレクターの両端いずれかを選択して、そこからスイッチなどで片方のコイルをアースに流すのが定番になっていますよね? そこでふと疑問に思ったことが。

 普通、HSH配列のギターは、ハーフポジションの時は自動でタップされています。故に、HSHの真ん中のPUをオフにするスイッチを付けた場合でも、リア(フロント)のシングル単体の音がでるのではないか、ということです。

 これなら通常の2WAYのスイッチで切り替えることができるので、手っ取り早いと思うのですが……知っている限りこの配線でタップをしている機種はありません。なにか理由があるのでしょうか?(特に音質面で)

Aベストアンサー

「ストラトでもハムバッキングPUのパワフルかつウォームな音がほしいが、(ストラトの売りの一つである)ハーフトーンはシングルコイル同士のパラレルがいい」というユーザーを優先している為でしょう。

>普通、HSH配列のギターは、ハーフポジションの時は自動でタップされています。故に、HSHの真ん中のPUをオフにするスイッチを付けた場合でも、リア(フロント)のシングル単体の音がでるのではないか、ということです。
→可能だと思います。ただスイッチが2個存在することに変わりありません。ですので「手っ取り早い」とは私は思いませんが(笑)。
尚、これは私の推測ですが、音が出ないスイッチポジションが存在するギターをメーカーが好まないのではないでしょうかね。ブライアン・メイのRed Specialは自作だけあって特殊なケースですね。

QORACLE INSERT文を教えて下さい

いつもお世話になっております。

以下のような処理を実現したいのですが、どうしてもいい方法が見つかりません。
実現するINSERT文を教えて頂けないでしょうか?
よろしくお願いいたします
ー処理ー
TBL_Aを1レコードづつ読み込み、グループ情報のあるVIEWよりview_GRPCD取得し、TBL_Bへ出力する。
但し、グループ情報には、以下のように同一TENCDに対して複数のグループがヒットする為、日付の降順、
グループコードの降順で一番最初にヒットしたレコードのGRPCDを採用する。

【TBL_A】
│TENCD │SYOCD │URIAGE│
┼───┼───┼───┼
│10100 │ 0100 │1,000 │
│10200 │ 0100 │2,000 │
│10300 │ 0300 │3,000 │
│22200 │ 0200 │2,200 │

【View】
│NO│GRPCD │TENCD │ YMD │
┼─┼───┼───┼───┼
│01│ 010 │10100 │02/01 │
│02│ 010 │10200 │02/01 │
│03│ 010 │10300 │02/01 │
│04│ 020 │10200 │01/01 │
│05│ 030 │10100 │05/01 │→TENCD:10100はこれを採用
│06│ 030 │10300 │03/01 │→TENCD:10300はこれを採用
│07│ 040 │10100 │03/01 │
│08│ 040 │10200 │03/01 │→TENCD:10200はこれを採用
│09│ 040 │10300 │03/01 │
│10│ 050 │10400 │05/01 │

下記のほうに記載しているSQLで作成されるTBL_Bは以下のようになります
【TBL_B】(誤り)
│TENCD │GRPCD │SYOCD │URIAGE│
┼───┼───┼───┼───┼
│10100 │ 030 │ 0100 │1,000 │
│10200 │ 040 │ 0100 │2,000 │
│10300 │ 030 │ 0300 │3,000 │

本来TBL_Bは以下のようにView上に存在しないTBL_Aのレコードでも出力させたく
以下のような結果を求めたいと思っています。
【TBL_B】(正解)
│TENCD │GRPCD │SYOCD │URIAGE│
┼───┼───┼───┼───┼
│10100 │ 030 │ 0100 │1,000 │
│10200 │ 010 │ 0100 │2,000 │
│10300 │ 010 │ 0300 │3,000 │
│22200 │ 000 │ 0200 │2,200 │※※※このレコードを作成することが出来ません※※※

※SQLにある「NVL(View_GRPCD,0)」でVIEW上にないレコードの場合、GRPCDにゼロをセットして
 出力できるかと思ったのですが、VIEW上にないレコードは作成されませんでした。
 これを実現する方法を教えて頂きたいと思います。


■TBL_B(誤り)は作成できるSQL

CURSOR CUR_A IS
SELECT TENCD,SYOCD,SUM(URIAGE) FROM TBL_A GROUP BY TENCD,SYOCD ORDER BY TENCD,SYOCD;

BEGIN
OPEN CUR_A;
LOOP
FETCH CUR_1 INTO w_TENCD, w_SYOCD, w_URI;

EXIT WHEN CUR_A%NOTFOUND;

INSERT INTO TBL_B(
SELECT w_TENCD, NVL(View_GRPCD,0), w_SYOCD, w_URI
FROM (SELECT
View_TENCD,View_WRICD,View_GRPCD,
RANK() OVER(PARTITION BY View_TENCD ORDER BY View_YMD DESC, View_GRPCD DESC) w_RANK
FROM View
WHERE View_TENCD = w_TENCD)
WHERE w_RANK = 1);
END LOOP;
CLOSE CUR_A;

いつもお世話になっております。

以下のような処理を実現したいのですが、どうしてもいい方法が見つかりません。
実現するINSERT文を教えて頂けないでしょうか?
よろしくお願いいたします
ー処理ー
TBL_Aを1レコードづつ読み込み、グループ情報のあるVIEWよりview_GRPCD取得し、TBL_Bへ出力する。
但し、グループ情報には、以下のように同一TENCDに対して複数のグループがヒットする為、日付の降順、
グループコードの降順で一番最初にヒットしたレコードのGRPCDを採用する。

【TBL_A】
│TENCD │SYOCD │URIAGE...続きを読む

Aベストアンサー

検証できる環境が今ないのですが、カーソルを使わず外部結合を使えばいいのではないでしょうか。
SELECT A.ENCD, NVL(View_GRPCD,0), A.SYOCD, A.URI
FROM
(SELECT TENCD,SYOCD,SUM(URIAGE) URI FROM TBL_A GROUP BY TENCD,SYOCD ORDER BY TENCD,SYOCD) A
left join
( select View_TENCD,View_WRICD,View_GRPCD from
(SELECT
View_TENCD,View_WRICD,View_GRPCD,
RANK() OVER(PARTITION BY View_TENCD ORDER BY View_YMD DESC, View_GRPCD DESC) w_RANK
FROM View )
where w_RANK = 1 ) on View_TENCD = w_TENCD

Qパソコンが自動的に立ち上がる

いつもお世話になっております。現在デスクトップパソコンを10年ほど使用しております。パソコン、モニター、プリンターをOAタップにつなぎ、タップの電源でシャットダウンした後、電源を切っていたのですが、最近OAタップの電源をオンにしたと同時にパソコンの電源が自動的に入り、BIOSセットアップメニューが立ち上がるようになり、また時刻も1998年の1月1日の0時となってしまうのです。マニュアルとか引っ張り出して読んでみたのですが、症例も載っておらず悩んでます。対処方法等ご存じの方おられましたら、ご教示お願いします。

Aベストアンサー

電池切れのためです。
Biosのセットアップ情報のバックアップや、RTC(時計)を駆動する
電池(CR2032など)が、PCの中に入っていますが、この電池が
消耗したのです。
PC内部を見て、コイン型の銀色の丸型の電池を探して同じものに
交換してください。

NECのPC90x1だと、ニッカド電池(充電式電池)の場合もあります。
この場合なら、OAタップの電源を入れたままにしてください。
省エネ(エコ)の為に電源を切っていると思いますが、毎日の
使用時間が少ないために、充電不足になっていると思われます。
(OAタップで電源を切らなければ、PCを使わなくても充電される)

当時のPCの待機電力は3W程度ですので、一月約50円位です。

QOracle 10g 複数のDELETE UPDATE INSERT文

Oracle 10g 複数のDELETE UPDATE INSERT文をプロシージャにまとめたところパフォーマンスが落ちてしまいました 1個ずつ適用するのは正直めんどくさいので プロシージャにまとめて実行しても パフォーマンスを落とさない方法はありますか?

プロシージャ内ではSQL1つごとにComittしているのでTransactionが原因でパフォーマンスが落ちているということはありません

Aベストアンサー

中身がよくわからないので何ともいえませんけれど
パフォーマンス低下の原因はCOMMITだと思いますよ。

SQLの基本は一括処理なのですが
コミットする理由と一度に処理しない理由は何ででしょう?
処理途中で異常終了してもちゃんと全体の整合性はたもてていますか?

10gってMERGE文は使えませんでしたっけ?


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報