我在 Oracle 函数执行中遇到问题。我有一个表 loginfo(username,password,type)
并且我有一个像这样的函数:
CREATE OR REPLACE FUNCTION login(name in varchar2,pass in varchar2 )
RETURN integer
IS
v_type integer;
BEGIN
Select loginfo.type
INTO v_type from loginfo
where loginfo.username=name
and loginfo.password=pass;
RETURN (v_type);
END;
我有两种类型的登录信息;类型 1 和 2。如果我从 php 调用此函数并使用应返回类型 1 的参数,它就会返回类型 1。当我使用应返回类型 2 的参数调用此函数时,它会在 PHP 页面中返回错误 OCI_NO_DATA
。但是,当我从 Oracle 调用函数时,它返回 2。
当我的参数为 username = '8801716560946'
和 password = '123456'
时,它应该返回类型 2。
最佳答案
OCI_NO_DATA
表示没有与您在表中传入的参数相匹配的行。我敢打赌,当您从 PHP 调用该函数时,您会传递不同的参数。例如,也许您在一种情况下传递带有一些附加空格的字符串,而在另一种情况下则不传递。
关于php - OCI_NO_DATA oci8 oracle 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10019019/