问题描述
我从所有者那里得到了Oracle存储函数(我没有写函数),看起来像这样
class LoginNewNavigationController: UINavigationController{
private var windowSize: CGSize!
init() {
let rootVc = LoginNewIPadViewController.init()
super.init(rootViewController: rootVc)
self.configureSizes()
self.preferredContentSize = self.windowSize
self.modalPresentationStyle = .formSheet
self.showNavigationBar = false
self.view.backgroundColor = .clear
self.view.layer.cornerRadius = 25
}
}
FUNCTION get_customer_data
(
iref_no_list IN t_param_tab,ocust_data_list OUT NOcopY t_customer_data_tab,oerrmsg OUT VARCHAR2
) RETURN NUMBER;
CREATE OR REPLACE TYPE T_ParaM_TAB force IS TABLE OF t_param_obj;
CREATE OR REPLACE TYPE T_ParaM_OBJ FORCE AS OBJECT
(
par_name VARCHAR2(30),/*Parameter name*/
par_value VARCHAR2(50),/*Parameter value*/
MEMBER FUNCTION to_string RETURN VARCHAR2
);
CREATE OR REPLACE TYPE T_CUSTOMER_DATA_TAB IS TABLE OF t_customer_data_obj;
CREATE OR REPLACE TYPE T_CUSTOMER_DATA_OBJ FORCE AS OBJECT
(
full_name VARCHAR2(360 CHAR),first_name VARCHAR2(100 CHAR),last_name VARCHAR2(100 CHAR),identity_number VARCHAR2(20 CHAR),email VARCHAR2(255 CHAR),phone_number VARCHAR2(20 CHAR),MEMBER FUNCTION to_string RETURN VARCHAR2
);
问题是,我无法打印出该集合。它返回消息和返回值,但集合只返回collection => oci8 集合资源。
我试过了
$connection = oci_connect("username","password","connect string");
$sql = "DECLARE
iref_no_list t_param_tab := t_param_tab(t_param_obj('CA_REF_NO','1111111111'));
BEGIN
:rc := get_customer_data(iref_no_list => iref_no_list,ocust_data_list => :output,oerrmsg => :message);
END;";
$stmt = oci_parse($connection,$sql);
$output = oci_new_collection($connection,"T_CUSTOMER_DATA_TAB");
oci_bind_by_name($stmt,":output",$output,-1,OCI_B_NTY);
oci_bind_by_name($stmt,":message",$errorMessage,4000,sqlT_CHR);
oci_bind_by_name($stmt,":rc",$resultNumber);
oci_execute($stmt,OCI_DEFAULT);
但它只返回false。
你知道有什么解决办法吗? 谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)