質問

新しくリリースされた SAS 9.2 でテストしている SAS アプリケーションがあります。medat_newobj 関数を呼び出して、SAS メタデータ リポジトリに新しいライブラリ オブジェクトを作成します。

rc = metadata_newobj( "SASLibrary", URI, Name );

9.1.3 では、関数が正常に実行されると (rc = 0)、URI 変数には新しく作成されたライブラリ オブジェクトの URI が設定されました。

SAS 9.2では、戻り値は0(成功)で、ライブラリオブジェクトは作成されますが(管理コンソールを使用して手動で確認しました)、URI変数は空白のままであるため、属性などを設定する後続の操作は失敗します。

両方のバージョンのドキュメントには、この関数の出力パラメーターとして URI がリストされています。

誰かこれについて知っている人はいますか?

編集: 私が使用していたコードは次のとおりです。

put libraryName=;
rc = metadata_newobj("SASLibrary", libraryUri, libraryName);
if rc ne 0 then do;
  /* Error handler */
  return;
end;
put libraryUri=;

そして出力:

libraryName=HRLIB10
libraryUri=

私はこれを回避しようとしています PROC METADATA 代わりに、それは機能しているようです。:\

編集#2: これが SCL コード内にあることについて言及していないことに今気づきました。

役に立ちましたか?

解決 2

新しいバージョンでmetadata_newobjが変更されたことを示唆するものは何も見つかりませんでした。しかし、それは私にとってはうまくいかないだけでした。そこで私は自分の関数を使用するように変換しました PROC METADATA そして現在はSAS 9.1.3で動作します。 そして SAS 9.2

皆さんありがとう。

他のヒント

それは私にとってはうまくいきました。あなたが示した例に基づいて、NAME の前後に引用符を置くことをお勧めします。また、metadata_newobj を実行する前に、length ステートメントを使用して URI を設定することもできます。それ以外の場合は、共有するために、他の手法で解決できたかどうかをお知らせください。

私が実行したものは次のとおりです。

data _null_;
    length uri $256;
    rc=0;
    rc=metadata_newobj("SASLibrary",
                       uri,
                       "testlib");
    put uri=;
run;

これが私のログです:

NOTE: Variable uri is uninitialized.
uri=OMSOBJ:SASLibrary\A5M6IOB0.AZ000007
NOTE: DATA statement used (Total process time):
      real time           0.07 seconds
      cpu time            0.01 seconds
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top