SAS 9.2のmetadata_newobj関数にはバグがありますか?
-
09-09-2019 - |
質問
新しくリリースされた 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