如何使用 FND_FILE.PUT_LINE 打印变量的记录类型属性 - Oracle
how to print record type attributes of a variable using FND_FILE.PUT_LINE - Oracle
一个 PLSQL 程序使用一个名为 x_api_errors 的变量,它是一个记录类型,定义为:
我想使用 FND_FILE.PUT_LINE 将 x_api_errors.message_name 和 x_api_errors.message_text 打印到 Oracle EBS 作业日志。
我希望这可以很容易地完成使用(根据文档这应该有效):
FND_FILE.PUT_LINE(FND_FILE.LOG,v_api_errors.message_name);
..但它给出:
[Error] PLS-00306 (343: 21):
PLS-00306: wrong number or types of arguments in call to 'PUT_LINE'
我怎样才能完成这项工作?这似乎是与类型转换有关的问题,因为当我尝试这样做时:
v_errorMessage:=v_api_errors.message_name;
它给出错误:
[Error] PLS-00382 (344: 50):
PLS-00382: expression is of wrong type
..但我无法 TO_CHAR
或 CAST
v_api_errors.message_name 到 VARCHAR2。
根据 https://itz4oracleapps.blogspot.com/2012/03/update-po-line-price-oracle-apps.html
上的文章
在那个例子中,他们 delcare
l_api_errors po_api_errors_rec_type;
然后当他们访问它时,他们使用如下循环访问它
FOR i IN 1 .. l_api_errors.message_text.COUNT LOOP
put_log (l_api_errors.message_text (i));
END LOOP;
这表明在您的屏幕截图中看到的 'Nested objects' 是数组,需要使用数组语法访问,例如
v_api_errors.message_name(1)
一个 PLSQL 程序使用一个名为 x_api_errors 的变量,它是一个记录类型,定义为:
我想使用 FND_FILE.PUT_LINE 将 x_api_errors.message_name 和 x_api_errors.message_text 打印到 Oracle EBS 作业日志。
我希望这可以很容易地完成使用(根据文档这应该有效):
FND_FILE.PUT_LINE(FND_FILE.LOG,v_api_errors.message_name);
..但它给出:
[Error] PLS-00306 (343: 21):
PLS-00306: wrong number or types of arguments in call to 'PUT_LINE'
我怎样才能完成这项工作?这似乎是与类型转换有关的问题,因为当我尝试这样做时:
v_errorMessage:=v_api_errors.message_name;
它给出错误:
[Error] PLS-00382 (344: 50):
PLS-00382: expression is of wrong type
..但我无法 TO_CHAR
或 CAST
v_api_errors.message_name 到 VARCHAR2。
根据 https://itz4oracleapps.blogspot.com/2012/03/update-po-line-price-oracle-apps.html
上的文章在那个例子中,他们 delcare
l_api_errors po_api_errors_rec_type;
然后当他们访问它时,他们使用如下循环访问它
FOR i IN 1 .. l_api_errors.message_text.COUNT LOOP
put_log (l_api_errors.message_text (i));
END LOOP;
这表明在您的屏幕截图中看到的 'Nested objects' 是数组,需要使用数组语法访问,例如
v_api_errors.message_name(1)