如何使用php运行oracle脚本

时间:2010-12-14 18:44:44

标签: php oracle

我已经开始了一个项目,用户可以连接到mySQL数据库或oracle数据库。我得到了mySQL部分,但是oracle有点困难。标准查询的工作方式如SELECT * FROM author,但是当我尝试加载脚本以创建模式时,我会收到无效的操作错误。我尝试过以各种方式使用'START'和'@',但无济于事。这些命令在命令行中工作,但在php中不起作用。我尝试了以下内容:

else if($databaseType == "Oracle")
{
$c = oci_connect($username, $password, $server);
     if (!$c) {
       echo "Unable to connect: " . var_dump( oci_error() );
       die();
     }


    // Delete previous schema
    $s = oci_parse($c, "@/oracle/dropall");
    oci_execute($s, OCI_DEFAULT);

    // Create schema
    $s = oci_parse($c, "@/oracle/oracle");
    oci_execute($s, OCI_DEFAULT);

    // Create first trigger
    $s = oci_parse($c, "@/oracle/oracle_trigger1");
    oci_execute($s, OCI_DEFAULT);

    // Create second trigger
    $s = oci_parse($c, "@/oracle/oracle_trigger2");
    oci_execute($s, OCI_DEFAULT);

    // Populate the database
    $s = oci_parse($c, "@/oracle/oracle_populate");
    oci_execute($s, OCI_DEFAULT);


    // Commit to save changes...
    oci_commit($c);

    // Logoff from Oracle...
    oci_free_statement($s);
    oci_close($c);
}

1 个答案:

答案 0 :(得分:1)

<强> OCI_PARSE

  

resource oci_parse(resource $ connection,string $ sql_text)

它期望SQL语句而不是文件名。

你想尝试:

 $s = oci_parse($c, file_get_contents('/oracle/dropall'));