いくつかの調査の後、私は自分の答えを編集しました。
EXECUTE ( string-expression )
ステートメントに関しては、はい、文字列式に二重引用符ではなく一重引用符を使用する必要があります。このページは言及します:
プロシージャに渡されたパラメータを使用して構築されたステートメントなど、動的に準備されたステートメントを実行できます。ステートメント内のリテラル文字列は一重引用符で囲む必要があり、ステートメントは1行である必要があります。
これにより、列が見つからないというエラーは解消されますが、プロシージャは次の別のエラーを返します。
Result set not permitted in '<batch statement>'
このステートメントを単独で実行しようとすると、同じエラーが返されます。
execute ('select * from sysusers')
考えられる原因:
結果セットが許可されていないコンテキストでSELECTステートメントを実行しようとしました。
解決策については、私の最新の回答を参照してください。
スキーマに関しては、オブジェクトを参照する方法は次のとおりです。
データベースオブジェクトは、ピリオド(。)で区切ったスキーマ名とオブジェクト名で参照することをお勧めします。完全な例として、現在のデータベースのHumanResourcesスキーマのEmployeeテーブルからレコードをSELECTするには、次のようになります。
SELECT * FROM HumanResources.Employee
リモートデータベースにあるオブジェクトを参照するために、完全修飾オブジェクト名にはサーバー名とデータベース名が含まれます。たとえば、MyServerのAdventureWorksデータベースのHumanResourcesスキーマのEmployeeテーブルからレコードをSELECTするには、次のようになります。
SELECT * FROM MyServer.AdventureWorks.HumanResources.Employee
SQL Anywhere 12でテストしましたが、同じように機能します。そして、私はスキーマに精通していませんでしたが、以下で提案しているのは実際にはスキーマを使用していることですが、dbownerはスキーマ名になります。
1)select * from dbname.dbowner.tablename
2)select * from dbowner.tablename
3)select * from dbname..tablename
(テーブルがdbo
スキーマに存在すると想定)
結論....selectステートメントには、スキーマで作成されたcds.ppl
という名前のテーブルが含まれている必要があります。ppl
cds
またはcds
、データベース名とppl
テーブル名がdbo
スキーマで作成されている場合は、ドットがありません。
select * from cds..ppl