如何从oracle中的存储过程中获取数据

时间:2016-06-20 07:26:28

标签: json oracle symfony stored-procedures jsonp

我需要从存储过程中获取数据

sql developer

中的

语法

 select abc_web_demo.wwv_json_data.dashboards('abc','7','tt',1211) from dual

返回json字符串

  {"data":[{"logs":7,"to_abc":88,"to_cl":12,"to_me":0}]}

 $tns = "
 (DESCRIPTION =
(ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST =ABC)(PORT = 1521))
)
(CONNECT_DATA = (SID = AAA))
 )
   ";

 try {
$conn = new PDO("oci:dbname=".$tns, '**', '**');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo 'Connected to database';

 } catch(PDOException $e) {
   echo 'ERROR: ' . $e->getMessage();
 }
    $sql = "CALL abc_web_demo.wwv_json_data.dashboards('ABC','79','Y',121221) ";

 $stmt = $conn->prepare($sql);
  $te=$stmt->execute();

//$stmt = $connection->query("SELECT @NEW_ID");
//$id = $stmt->fetchColumn();

print_r($te);

问题

  • 我有谷歌&发现我需要在查询中传递字符串 比如$ stmt = $ connection-> query(“SELECT @NEW_ID”);

  • 在我的情况下,我需要在程序中传递4个参数。

  • 我是存储过程的新手,我需要帮助如何在程序中传递4个参数。

  • 如何使用fetch语句访问json响应。

  • 我需要从获取数据中获取json repsonse。

  • 任何帮助非常感谢

我试过的解决方案

 $output = $conn->query("select 'abc', '7' ")->fetch(PDO::FETCH_ASSOC);
 var_dump($output);

错误

    SQLSTATE[HY000]: General error: 923 OCIStmtExecute: ORA-00923: FROM keyword not found where expected

当我尝试测试查询时,它可以正常工作

$stmt = $conn->prepare("select * from customers");
$st=$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
print_r($result);

1 个答案:

答案 0 :(得分:0)

按如下方式编写查询。 Oracle语言的方言中必须使用FROM子句。

select 'abc', '7' from dual