街中で見かけて「グッときた人」の思い出

ストアドプロシジャの方法で削除処理をしたいと考えています。
ダイナセットはデータ件数が沢山あって、使いたくありません。

言語 VB6.0 DB ORACLEは9iで、oo4oで接続しています。

DBは
テーブル名 売上
列名    データID
      伝票日付
っていうふうになっていて、

例えば、伝票日付が今日のデータ分削除処理をしたいんですが いろいろなサイトを見てもいまいちわからないので投稿しました。 お願いします。

A 回答 (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はデータベースにログインするときのユーザー名です。

これをモデファイしてご利用ください。あくまでもヒントです。

この回答への補足

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

補足日時:2003/06/24 16:32
    • good
    • 0
この回答へのお礼

ありがとうございます。

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コマンドが正しく終了されていません。と出ます。
何がいけないんでしょうか・・・

お礼日時:2003/06/24 16:09

こんにちは。


困り度3なので。とりあえず結果を出すために。

1.日付指定でクエリを作る
2.それを削除クエリにする
っていう手順で一発です。

SQLは

DELETE 売上.伝票日付
FROM 売上
WHERE (((売上.伝票日付)=#6/24/2003#));

となります。
これは、日付が今日になっています。
    • good
    • 0

delete 売上 where 伝票日付= to_char(sysdate,'YYYYMMDD');



と ストアドプロシジャーに 書いてあげればいいでしょう。
    • good
    • 0

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