PID が埋め込まれたテーブルを作成できますが、必須ではありません。一時テーブルは、それを作成したセッションでのみ表示されるため、競合を心配することなく、各セッションで同じテーブル名を使用できます (別個の ESQL/C プログラムを同時に実行します)。
不要であるという再確認にもかかわらず、それでも実行したい場合は、文字列からステートメントを PREPARE および EXECUTE (または DECLARE、OPEN、FETCH、CLOSE) する必要があります。
snprintf(sql, sizeof(sql), "CREATE TEMP TABLE tabname_%d(name CHAR(10))", (int)getpid());
EXEC SQL PREPARE s FROM :sql;
EXEC SQL EXECUTE s;
またはEXECUTE IMMEDIATEを使用します(ここでは明らかに勝者です):
EXEC SQL EXECUTE IMMEDIATE :sql;
また、すべてのクエリを準備する必要があります。固定名の一時テーブルを使用する明確な利点の 1 つは、一時テーブルを参照するすべてのものを準備する必要がないことです (ただし、PREPARE などを使用する利点はよくあります)。
$$
同じ理由で、シェル スクリプトでも使用する必要はありません。一時テーブルはセッションに対してプライベートです。