我想在connectionString中有STATEMENT_TIMEOUT_IN_SECONDS
,这样我的查询就会中止,如果它需要超过60秒。
下面是没有使用STATEMENT_TIMEOUT_IN_SECONDS
的示例代码。在任何级别上都有办法做到这一点吗?
注意如果可以在查询级别实现,那将会更有帮助。查询级别是指在$result = odbc_exec($conn,$sql);
代码级别。
<?php
$server = 'abc.us-east-1.snowflakecomputing.com';
$user = 'mukul';
$pass = 'xyz123456';
//Define Port
$port='443';
$database = 'db';
$connection_string = "DRIVER={SnowflakeDSIIDriver};SERVER=$server;PORT=$port;DATABASE=$database";
$conn = odbc_connect($connection_string,$user,$pass);
if ($conn) {
echo "Connected";
} else{
die("Connection could not be established.");
}
$sql = "SELECT * FROM table limit 50";
$result = odbc_exec($conn,$sql);
// Get Data From Result
while ($data[] = odbc_fetch_array($result));
// Free Result
odbc_free_result($result);
// Close Connection
odbc_close($conn);
// Show data
print_r($data);
?>
根据文档https://docs.snowflake.com/en/sql-reference/parameters#statement-timeout-in-seconds,STATEMENT_TIMEOUT_IN_SECONDS可以在ACCOUNT、SESSION或OBJECT级别设置。
alter session Set statement_timeout_in_seconds = 60
该查询将在会话级别设置60秒超时。