Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

OPEN (SQL)

カーソルをオープンします。

Synopsis

OPEN cursor-name

引数

引数 説明
cursor-name 既に宣言されている、カーソルの名前。カーソル名は DECLARE 文で指定されています。カーソル名は、大文字と小文字を区別します。

概要

OPEN 文は、カーソルの DECLARE 文で指定されているパラメータに従ってカーソルをオープンします。オープンすると、カーソルを取得できます。オープンしたカーソルは、クローズする必要があります。

  • 宣言されていないカーソルをオープンしようとすると、SQLCODE -52 エラーが返されます。

  • 既にオープンしているカーソルをオープンしようとすると、SQLCODE -101 エラーが返されます。

  • オープンしていないカーソルをフェッチまたはクローズしようとすると、SQLCODE -102 エラーが返されます。

OPEN を正常に実行できると、結果セットが空の場合でも SQLCODE = 0 が設定されます。

SQL 文として、埋め込み SQL からのみサポートされます。同様の操作は、ODBC でも ODBC API を使用してサポートされます。

以下は、EmpCursor という名前のカーソルをオープンしてクローズする埋め込み SQL の例です。

   SET name="LastName,FirstName",state="##"
   &sql(DECLARE EmpCursor CURSOR FOR 
        SELECT Name, Home_State
        INTO :name,:state FROM Sample.Person
        WHERE Home_State %STARTSWITH 'A')
   WRITE !,"BEFORE: Name=",name," State=",state 
   &sql(OPEN EmpCursor)
   IF SQLCODE '= 0 { WRITE "Open error: ",SQLCODE
                     QUIT }
   NEW %ROWCOUNT,%ROWID
   FOR { &sql(FETCH EmpCursor)
        QUIT:SQLCODE  
        WRITE !,"DURING: Name=",name," State=",state }
   WRITE !,"FETCH status SQLCODE=",SQLCODE
   WRITE !,"Number of rows fetched=",%ROWCOUNT
   &sql(CLOSE EmpCursor)
   WRITE !,"AFTER: Name=",name," State=",state

関連項目

FeedbackOpens in a new tab