
ジョブでバッチ処理を作成していますが、テーブルからある数式を文字列として取得し、文字列内にある変数を実際の値と置き換え、それを数式として処理する必要があります。
T-SQLにはその機能がないため、vbsのEVAL関数を使って処理しようと考えています。
テーブルから取得した数式を直接SQL文に記述し、「数式 AS フィールド名」として取得しようとも考えましたが、数式に^(べき乗)が存在し、数式をT-SQLに変換することが複雑になってしまうため、あきらめました。
SQLServerのジョブ(もしくはストアドプロシージャ内)からパラメータを与えてVBSを実行させ、VBSより結果を返してもらうコーディング(設定)はどうすればできるのでしょうか?
No.2ベストアンサー
- 回答日時:
>a^2.1 という具合に小数点のべき乗の部分が
あ。すみません。読みきれてませんでした。
で、そのあたり調べてみると…。
T-SQLでのべき乗は、"^"では行われないみたいです。
"^"は、「ビットごとの排他的 OR」です。
ということで、Power関数を使用するようです。
declare @a as float
@a=2
power(cast(@a as float),0.5)
で、ルート2が帰ってきます。
(詳細はBooksOnline参照)
#言語によって、四則演算以外は違ってたりするので、ヘルプなどで確認するほうがいいかとおもいます。
SQLServerからVBSコードの実行方法だけわかれば良いと思っていたので説明不足で申し訳ありません。
計算式はユーザによって入力されるため、べき乗はPOWERではなく ^ で入力されます。
その式をPOWERに置き換えるプログラムを作成するのはかなりハードではないかと思われます。
データ変換サービスのローカルパッケージ内でActiveXスクリプトタスクを使ってテーブル全体を変換する方法も試しましたが、処理がかえって複雑になってしまいました。
テーブルから数値データを1件ずつFetchしながら計算処理させ、なおかつべき乗は^で記述できる方法があればベストなのですが...。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
大きなテーブルに対する問い合...
-
Access Update文の副問い合わせ
-
TRY CATCHでシステムエラーを検...
-
アクセスのワークシート変換に...
-
実行時エラー3086 削除クエリ...
-
ACCESS2007 フォーム 「バリア...
-
結合テーブルクエリPrimaryKey...
-
「マスタ」と「テーブル」の違...
-
sqlserverで集計結果をUPDATEし...
-
SQL Server のデータをCSVファ...
-
ACCESSのSQLで、NULLかNULLでな...
-
SELECT文でのデッドロックに対...
-
seoについておしえてください
-
列名XXXXが無効です
-
ACCESS 一番最新の日付の金額...
-
数百万件レコードのdelete
-
mdbでトリガはできますか?
-
SELECT時の行ロックの必要性に...
-
ホームページがGOOGLEにインデ...
-
オラクルではできるのにSQLSERV...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESS2007 フォーム 「バリア...
-
Access VBA [リモートサーバー...
-
ACCESSのODBCリンクテーブルに...
-
大きなテーブルに対する問い合...
-
Accessでクエリを完了できませ...
-
実行時エラー3086 削除クエリ...
-
ユニオンクエリで繋げられるテ...
-
Select ~ into ~ で作成した...
-
VBAの実行時エラー'2522'について
-
accessでSQL実行時のテーブル名...
-
Access Update文の副問い合わせ
-
AccessのテーブルをSQL Server...
-
Oracleデータベーストリガーの...
-
SSIS 変数の値をSQL実行タスク...
-
SQL SERFVER で外部キーのエラ...
-
ACCESSにてテーブルをEXCEL形式...
-
TRY CATCHでシステムエラーを検...
-
テーブル作成後なんですが、Pri...
-
PhpMyAdminで作成して実行せよ...
-
アクセスのワークシート変換に...
おすすめ情報