Я хочу иметь STATEMENT_TIMEOUT_IN_SECONDS как в connectionString, чтобы мой запрос прерывался, если он занимает более 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 можно установить на уровне УЧЕТНОЙ ЗАПИСИ, СЕАНСА или ОБЪЕКТА.
alter session Set statement_timeout_in_seconds = 60
Этот запрос установит 60-секундный тайм-аут на уровне сеанса.