![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
こんにちは、いつもお世話になっております。
現在、会社で動的SQLを使用してとある開発をおこなっているのですが、
どうしても上手くいかないので、どなたか教えて下さいm(__)m
下記の動的SQL文で最後から2行目のSQL:DBMS_OUTPUT.PUT_LINE(varDel);
を実行するとORA-06502: PL/SQL:
数値または値のエラー: 文字列バッファが小さすぎます。のエラーが
発生します、過去ログやgoogleで検索をかけてみたのですが、
どうにも解決方法がわからず困っています・・・・
お知恵のある方、教えて下さいませm(__)m
※多分、sql文が長いせいだとは思うのですが、どうしても
これ以上は短くできず、静的ではなく、動的で動かさなければならない
という条件付きなんですが、宜しく御願いします。
DECLARE
numkeepD NUMBER := 0; -- データ保管期間格納用
varAST VARCHAR2(4) := '**'; -- アクセス区分定義外格納用
varkeepD VARCHAR2(2000); -- KEEP_DAYS取得SQL文格納用
varDel VARCHAR2(2000); -- DELETE文格納用
BEGIN
varkeepD := 'SELECT KEEP_DAYS FROM SMCI4T910 WHERE ACC_KBN = '''||varAST||'''';
DBMS_OUTPUT.PUT_LINE(varkeepD);
EXECUTE IMMEDIATE (varkeepD) INTO numkeepD;
DBMS_OUTPUT.PUT_LINE(numkeepD);
-- アクセスログデータ削除SQL文格納
varDel := 'DELETE FROM '||cTABLE_STCI1T910||' ST910 '
||'WHERE '
||'ST910.DELETE_FLG = SCIS_CTS.cDEL_NO AND '
||'EXISTS('
||'SELECT 1 '
||'FROM SMCI4T910 SM910 '
||'WHERE '
||'ST910.ACC_KBN = SM910.ACC_KBN AND '
||'ST910.ACC_CYMD < TO_CHAR(SYSDATE - SM910.KEEP_DAYS,''YYYYMMDD'') AND '
||'ST910.ACC_KBN <> varAST AND '
||'SM910.DELETE_FLG = SCIS_CTS.cDEL_NO)';
DBMS_OUTPUT.PUT_LINE(varDel);
--EXECUTE IMMEDIATE (varDel)
END;
No.3
- 回答日時:
DBMS_OUTPUTでエラーになるような気がしないんですが・・
DBMS_OUTPUTの部分をコメントにすると、エラーが無くなるんですかね?
ちなみに、組み立てている動的SQL文が間違っているので、もう一度確認された方が良いですよ。
動的SQLをEXECUTEしたところでエラーになるはずです。
返信と御指摘ありがとうございますm(__)m、確かにSQL文が間違っていました・・・・ちなみになんですが、私が調べた範囲内ではDBMS_OUTPUTを使用する際に255バイト(?文字?と言った方がいいのでしょうか)以上の際にエラーが出ました・・・間違っていたらすみません・・
完成したものは下記のような感じになりました。
varDel := 'DELETE FROM '||cTABLE_STCI1T910||' ST910 '
||'WHERE '
||'EXISTS('
||'SELECT 1 '
||'FROM '||cTABLE_SMCI4T910||' SM910 '
||'WHERE '
||'SM910.KEEP_DAYS > 0 AND '
||'ST910.ACC_KBN = SM910.ACC_KBN AND '
||'ST910.ACC_CYMD < TO_CHAR(SYSDATE - SM910.KEEP_DAYS,''YYYYMMDD'') AND '
||'ST910.ACC_KBN <> '''||varAst||''' AND '
||'SM910.DELETE_FLG = '''||SCIS_CTS.cDEL_NO||''')';
※御回答いただいた方、本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- SQL Server AccessのInsertクエリのあとつづけてDeleteクエリを行いたいがSQLでどう書いたらいい 3 2023/05/27 14:12
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
ORA-06502のエラー
Oracle
-
【PL/SQL】SQL文が長すぎてSELECTできない
Oracle
-
Statement ignored というエラー
Oracle
-
-
4
PL/SQL PLS-00103エラーについて
Oracle
-
5
SQLローダーCSV取込で、囲み文字がデータ中に入っている場合について
Oracle
-
6
Oracle 動的SQLでエラー
Oracle
-
7
SQLのVARCHARとVARCHAR2の違い
その他(データベース)
-
8
CASE文のエラーについて
Oracle
-
9
Oracleでの文字列連結サイズの上限
Oracle
-
10
PL/SQLでログを確認したい。
Oracle
-
11
sql*loader 数値のロード
Oracle
-
12
datapumpの実行方法について
Oracle
-
13
Chr(13)とChr(10)の違いは?
PowerPoint(パワーポイント)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access2010実行時エラー-21473525
-
アクセスでエラー このフィー...
-
#1062 - '0' は索引 'PRIMARY' ...
-
BULK INSERTのエラー取得は可能...
-
ODBCデータソースが削除できま...
-
共有フォルダに誰が何にアクセ...
-
Becky!で「メールサーバーへの...
-
【Excel】[Expression.Error] ...
-
【CSVファイル】先頭の文字列に...
-
Androidのマルチユーザーでモン...
-
拡張子が「cda」のファイルを聞...
-
VB6.0でファイルの一行だけ削除...
-
access 更新ボタンを作る
-
特定のエクセルファイルを起動...
-
accessで項目内の文字を自動改...
-
アクセスがインポートできる容...
-
mdbファイル フォームを開くと...
-
vbsでゴミ箱への移動
-
社内Excel共有ブックでの保存ト...
-
Accessからexcelに数式もエクス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
#1062 - '0' は索引 'PRIMARY' ...
-
アクセスでエラー このフィー...
-
列名に変数を使うことはできな...
-
実行時エラー459 withステート...
-
SQLserver2005 nvarchar を flo...
-
空白はダメというエラーの表示...
-
AccessVBA 実行時エラー'2766'...
-
オラクル(PL/SQL)のエラー
-
SQL*Loaderで「オブジェクトが...
-
UPDATEを使ったSQL文にて
-
SQLCODE=-420とはどういうエラ...
-
(素人の質問) SQL Server エ...
-
Access2010実行時エラー-21473525
-
SQL文長の制限
-
Access 実行時エラー'3075' 対...
-
SQL エラー コードの一覧 につ...
-
DocuWorksでの印刷
-
「1004:アプリケーション定義...
-
ORACLE PL/SQLの...
-
オラクルでisnumeric?
おすすめ情報