我試圖達到的表的結構是這樣的:
- 資料庫:INTERNAL_STUFF
- 架構:INTERNAL_TEST
- 表:TEST_TABLE_SIMPLE
我創建了一個 PDO:
$dbh = new PDO("snowflake:account=$this->account", $this->user, $this->password);
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
如果我使用這個查詢:
$result = $dbh->query("SELECT * FROM INTERNAL_STUFF.INTERNAL_TEST.TEST_TABLE_SIMPLE");
我最終得到了這個回應 - 'Schema 'INTERNAL_STUFF.INTERNAL_TEST' 不存在或未授權。'。因此,它似乎只是將資料庫和模式視為模式。
如果我使用相同的查詢但從前面洗掉資料庫:
$result = $dbh->query("SELECT * FROM INTERNAL_TEST.TEST_TABLE_SIMPLE");
我最終得到了這個回應 - 'SQLSTATE[22000]: 資料例外:90105 無法執行 SELECT。此會話沒有當前資料庫。呼叫“USE DATABASE”,或使用限定名稱。
我在這里做錯了什么?我的用戶有權訪問正確的角色來查看表,并且該確切查詢(兩者中較長的一個)在雪花作業表中作業得很好。
uj5u.com熱心網友回復:
您還可以使用 Alter User 陳述句為您的用戶設定默認命名空間(資料庫和架構)。
詳情:https : //docs.snowflake.com/en/sql-reference/sql/alter-user.html#usage-notes
uj5u.com熱心網友回復:
您能否在執行主 Sql 查詢之前執行查詢 USE DATABASE INTERNAL_STUFF 和下一個查詢 USE SCHEMA INTERNAL_TEST。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/372324.html
