【问题标题】:Need help determining if SQL*PLUS procedure call is correct (PHP)需要帮助确定 SQL*PLUS 过程调用是否正确 (PHP)
【发布时间】:2018-05-16 05:19:15
【问题描述】:

我的教授要求我们使用 PHP 和 SQL (Oracle) 做一个项目,而我之前从未在课堂上或课外使用过 PHP。我在执行行上不断收到错误消息,说我的输入不正确。是我在输入区域做错了什么,还是有其他问题。我正在尝试执行存储过程。(错误代码是 ORA-06550)。

function makeReservation($conn, $roomNo, $custID, $cardNo, $startDate, $startTime, $endDate, $endTime){
    $procedure = oci_parse($conn, 'BEGIN makeReservation(:roomNo, :custID, :cardNo, TO_DATE(:startDate, \'month dd YYYY\'), :startTime, TO_DATE(:endDate, \'month dd YYYY\'), :endTime);  END;');
    oci_bind_by_name($procedure, ':roomNo', $roomNo);
    oci_bind_by_name($procedure, ':custID', $custID);
    oci_bind_by_name($procedure, ':cardNo', $cardNo);
    oci_bind_by_name($procedure, ':startDate', $startDate);
    oci_bind_by_name($procedure, ':startTime', $startTime);
    oci_bind_by_name($procedure, ':endDate', $endDate);
    oci_bind_by_name($procedure, ':endTime', $endTime);
    oci_execute($procedure);
}

【问题讨论】:

  • 请编辑您的问题并包含错误的确切文本。另外,请包括您正在调用的存储过程的源代码。谢谢。

标签: php oracle oracle11g sqlplus


【解决方案1】:

我没有看到关于 SQL*Plus 的任何信息

1/ 你应该在你的 php 函数中添加一个 return 子句 2 / 也许尝试“'BEGIN makeReservation(:roomNo, :custID, :cardNo, TO_DATE(:startDate, 'month dd YYYY', :startTime, TO_DATE(:endDate, 'month dd YYYY'), :endTime); END; ") 3/ 确定 :startDate 和 :endDate 格式正确 4/ 可以为每个绑定添加第四个参数 $maxlength = -1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    相关资源
    最近更新 更多