• ベストアンサー

ストアドプロシジャ

ストアドプロシジャの方法で削除処理をしたいと考えています。 ダイナセットはデータ件数が沢山あって、使いたくありません。 言語 VB6.0 DB ORACLEは9iで、oo4oで接続しています。 DBは テーブル名 売上 列名    データID       伝票日付 っていうふうになっていて、 例えば、伝票日付が今日のデータ分削除処理をしたいんですが いろいろなサイトを見てもいまいちわからないので投稿しました。 お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • PAPA0427
  • ベストアンサー率22% (559/2488)
回答No.3

Public OraS As OraSession Public OraD As OraDatabase dim strSQL as String Set OraS = CreateObject("OracleInProcServer.XOraSession") Set OraD = OraS.OpenDatabase(DataSource, User, 0&) strSQL = "DELETE FROM 売上 WHERE FORMAT(伝票日付,"YYMMDD") = 'yymmdd'" OraD.ExecuteSQL strSQL DataSourceはデータベース名,Userはデータベースにログインするときのユーザー名です。 これをモデファイしてご利用ください。あくまでもヒントです。

GERRARD
質問者

お礼

ありがとうございます。 PUBLIC W_SQL AS STIRNG PUBLIC ORASE AS OBJECT PUBLIC ORADB AS OBJECT W_SQL = "DELETE データID,伝票日付 FROM 売上 WHREE 伝票日付 = 20030601 ORADB.ExecuteSQL W_SQL ※伝票日付はNUMBER型です。 SQL文をまねして書いたんですけど、SQLの実行時エラーが出てしまいます。 ORA-00933 SQLコマンドが正しく終了されていません。と出ます。 何がいけないんでしょうか・・・

GERRARD
質問者

補足

DELETE FROM 売上 でできました。ありがとうございます.

その他の回答 (2)

  • yomo3
  • ベストアンサー率32% (88/269)
回答No.2

こんにちは。 困り度3なので。とりあえず結果を出すために。 1.日付指定でクエリを作る 2.それを削除クエリにする っていう手順で一発です。 SQLは DELETE 売上.伝票日付 FROM 売上 WHERE (((売上.伝票日付)=#6/24/2003#)); となります。 これは、日付が今日になっています。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

delete 売上 where 伝票日付= to_char(sysdate,'YYYYMMDD'); と ストアドプロシジャーに 書いてあげればいいでしょう。

関連するQ&A