実現したいこと
LaravelでOracleのマテリアライズドビューをリフレッシュしたい。
前提
Oracleのマテリアライズドビューをリフレッシュする際、SQLPlusから
EXECUTE DBMS_MVIEW.REFRESH('MAT_VIEW', 'c');
を実行しているのですが、Laravelのクエリビルダを使用して同じことが
できません。実行可能な方法があればご教授いただきたいです。
試したこと
下記コードを実行した場合、同じエラーとなります。
・DB::statement(DB::raw("EXECUTE DBMS_MVIEW.REFRESH('MAT_VIEW', 'c')")); ・DB::statement("EXECUTE DBMS_MVIEW.REFRESH('MAT_VIEW', 'c')");
[previous exception] [object] (Yajra\\Pdo\\Oci8\\Exceptions\\Oci8Exception(code: 900): Error Code : 900 Error Message : ORA-00900: invalid SQL statement Position : 0 Statement : EXECUTE DBMS_MVIEW.REFRESH('MAT_VIEW', 'c') Bindings : [] at /var/www48/lara_app/vendor/yajra/laravel-pdo-via-oci8/src/Pdo/Oci8/Statement.php:797)
次のコードだと、また別のエラーとなります。
DB::select(DB::raw("EXECUTE DBMS_MVIEW.REFRESH('MAT_VIEW', 'c')");
[2023-09-13 11:14:19] develop.ERROR: Yajra\Pdo\Oci8::prepare(): Argument #1 ($query) must be of type string, Illuminate\Database\Query\Expression given, called in /var/www48/lara_app/vendor/laravel/framework/src/Illuminate/Database/Connection.php on line 539 {"exception":"[object] (TypeError(code: 0): Yajra\\Pdo\\Oci8::prepare(): Argument #1 ($query) must be of type string, Illuminate\\Database\\Query\\Expression given, called in /var/www48/lara_app/vendor/laravel/framework/src/Illuminate/Database/Connection.php on line 539 at /var/www48/lara_app/vendor/yajra/laravel-pdo-via-oci8/src/Pdo/Oci8.php:294)
何卒、よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー