0

これが私のストアドプロシージャです

CREATE PROCEDURE `tblCarGarage_Insert`(
   URL varchar(700)で、
   IN価格int(7)、
   IN Make varchar(60)、
   INモデルvarchar(60)、
   TrimLevel varchar(60)では、
   INマイルint(6)、
   IN ZipCode int(5)、
   IN説明varchar(80)、
   INカラーvarchar(30)、
   INオーナーvarchar(100)、
   IN VIN varchar(20)、
   VINKeyCode varchar(12)では、
   CarYear int(4)では、
   リストIDint(14))
tblcargarageに挿入
      SET URL = @ URL、
          価格=@Price、
          rBit = b'1'、
          DateDiscovered = NOW()、
          LastProcessDate = NOW()、
          CarYear = @CarYear、
          Make =
             (SELECT uniqueID
                tbltranslationmakeから
               WHERE make ='ホンダ')、
          モデル=
             (SELECT uniqueID
                tbltranslationmodelから
               WHERE model = @Model)、
          CarTrim =
             (SELECT uniqueID
                tbltranslationtrimから
               WHEREトリムレベル=@TrimLevel)、
          マイル=@Miles、
          ZipCode = @ZipCode、
          説明=@Description、
          色=@Color、
          所有者=@Owner、
          VIN = @ VIN、
          VINKeyCode = @ VinkeyCode、
          ListingID = @ListingID;

これが私の処刑です

SET @CarYear ='';
SET @URL ='asdas';
SET @Price = 20112;
SET @Make='ホンダ';
SET @Model='シビック';
SET @TrimLevel ='Ex';
SET @Miles = 20112;
SET @Description ='asdasdasd';
SET @Color='黄色';
SET @Owner ='asdasdas';
SET @VIN ='qeqweqweqw2e';
SET @VinkeyCode ='asd23sd';
SET @ListingID = 1231231;
SET @ZipCode = 12331;
CALL tblCarGarage_Insert(@CarYear、
                                              @ URL、
                                              @価格、
                                              @作る、
                                              @モデル、
                                              @ TrimLevel、
                                              @マイル、
                                              @説明、
                                              @色、
                                              @オーナー、
                                              @ VIN、
                                              @ VinkeyCode、
                                              @ListingID、
                                              @郵便番号)

一意のIDを選択
                tbltranslationmakeから
               WHERE make='ホンダ'
11を返します(intとして)

モデル=
             (SELECT uniqueID
                tbltranslationmodelから
               WHERE model = @Model)、

712をintとして返します

          CarTrim =
             (SELECT uniqueID
                tbltranslationtrimから
               WHEREトリムレベル=@TrimLevel)、
12334をintとして返します。

はい、これら3つの列はすべて私のDBのINTです。

クエリを非SPとして実行した場合、クエリをasd set x ='x' ectに挿入すると、'Column'Make'をnullにすることはできません...同じ値で問題なく動作します。何か案が?

ありがとう!

これは、varcharとintを期待するテーブルを渡すことで何かをしなければなりません。多分それは正しいエラーを返していませんか?

4

1 に答える 1

0

あなたのコードを見て、最初に気付いた問題は、CALL ステートメントでパラメーターを間違った順序で渡していることです。たとえば、ストアド プロシージャの定義では最初のパラメータは URL ですが、プロシージャへの呼び出しでは渡す最初のパラメータは CarYear です。

パラメータを正しい順序で渡してみて、それがうまくいくかどうかを確認してください。

CALL tblCarGarage_Insert(
  @URL,
  @Price,
  @Make,
  @Model,
  @TrimLevel,
  @Miles,
  @ZipCode,
  @Description,
  @Color,
  @Owner,
  @VIN,
  @VinkeyCode,
  @CarYear,
  @ListingID
)
于 2012-04-04T20:36:52.703 に答える