0

データのインポート中に、対応するビューがデータベースで利用できないというエラーが表示されます。しかし、ビューが利用可能であることをDBにチェックインしました。私は手動でビューに挿入しようとしましたが、その時はうまくいきました。

このために変更する設定はありますか?

SSIS を介してテーブルからビューにデータをインポートしている間。「無効なオブジェクト名[Feed].[VwPharmaClaim]です。」というエラーが表示されます。これはすでに存在します。オブジェクト名で囲まれたプロファイラー("[Feed]"."[VwPharmaClaim]")の引用符でクエリをトレースしました。引用符が機能していない場合。

2008 バージョンでデータを挿入しているときに、次のエラーが発生します。

メッセージ 208、レベル 16、状態 1、行 1 無効なオブジェクト名 '[Feed].[VwPharmaClaim]'

プロファイラーで挿入クエリをトレースしました

exec sp_executesql N'INSERT INTO "[Feed]"."[VwPharmaClaim]" ("PharmaKey","member_id","MemberRefID","claim_id","ndc","days_supply","re​​fill_number","fill_dt", "paid_dt","prescriber_id","allowed_amt","paid_amt","Member_amt","quantity","Import_Id","age") 値 (@P1,@P2,@P3,@P4,@P5,@ P6,@P7,@P8,@P9,@P10,@P11,@P12,@P13,@P14,@P15,@P16)',N'@P1 bigint,@P2 varchar(8000),@P3 数値(18),@P4 varchar(8000),@P5 varchar(8000),@P6 numeric(10),@P7 int,@P8 datetime,@P9 datetime,@P10 varchar(8000),@P11 money,@P12 money,@P13 money,@P14 float,@P15 numeric(18),@P16 int',1,'000000000052',52,'085565501321 ','00472030115',5,0,'2008-06-04 00:00:00','2008-06-08 00:00:00','BO5586396',$10.0000,$0.0000,$10.0000,15,7,5368

出力メッセージ 208、レベル 16、状態 1、行 1 無効なオブジェクト名 '[Feed].[VwPharmaClaim]'。

二重引用符を削除すると、正常に機能します

exec sp_executesql N'INSERT INTO [Feed].[VwPharmaClaim] ("PharmaKey","member_id","MemberRefID","claim_id","ndc","days_supply","re​​fill_number","fill_dt","paid_dt", "prescriber_id","allowed_amt","paid_amt","Member_amt","quantity","Import_Id","age") 値 (@P1,@P2,@P3,@P4,@P5,@P6,@P7 ,@P8,@P9,@P10,@P11,@P12,@P13,@P14,@P15,@P16)',N'@P1 bigint,@P2 varchar(8000),@P3 numeric(18), @P4 varchar(8000),@P5 varchar(8000),@P6 numeric(10),@P7 int,@P8 datetime,@P9 datetime,@P10 varchar(8000),@P11 money,@P12 money,@P13 money,@P14 float,@P15 numeric(18),@P16 int',1,'000000000052',52,'085565501321','00472030115',5,0,'2008-06-04 00:00:00','2008-06-08 00:00:00','BO5586396',$10.0000,$0.0000,$10.0000,15,7,5368

出力

(1 行が影響を受けます)

私のパッケージは 2005 年に開発されました。このパッケージは、2008 年に次のバージョンに変換しました。

バージョン 9.0.30729.4462.QFE

テーブルからビューにデータをインポートする際のこの私のエラー

[OLE DB 宛先 [185]] エラー: SSIS エラー コード DTS_E_OLEDBERROR。OLE DB エラーが発生しました。エラー コード: 0x80004005。OLE DB レコードが利用可能です。ソース: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80040E37 説明: "無効なオブジェクト名 '[Feed].[VwPharmaClaim]'.".

4

2 に答える 2

1

SQL Server 2008 の既定では、二重引用符を使用してデータベース オブジェクトを識別することは許可されていません。

走る

ALTER DATABASE <dbname> SET QUOTED_IDENTIFIER = ON

宛先データベースに対して実行してみてください

SELECT * FROM "Feed"."VwPharmaClaim"

詳細については、 http://technet.microsoft.com/en-US/library/ms174393 (v=sql.105).aspxを参照してください。

SSIS がこれらのクエリを生成していると言うとき、それらを生成するためにどのような種類のタスクを使用していますか? 以前に二重引用符の識別子を生成するのを見たことがありません。ただ興味があります。

于 2012-12-04T16:24:27.070 に答える
0

SSIS 2013 でこれを経験し、更新可能なビューに挿入しようとしました。このビューは、「代わりに」トリガーを使用して挿入を行います。

それが機能するためには、宛先の高度なエディターに移動し、コンポーネントのプロパティ タブで OpenRowset から角かっこを削除する必要があったため[dbo].[myView]dbo.myView. また、AccessMode は単純な OpenRowset である必要があります。ファストロードが機能しません。

于 2014-11-19T23:56:07.783 に答える