No.1ベストアンサー
- 回答日時:
動的SQLを使えば可能だと思いますよ。
選択した計算式の列名と演算子を使って、SQL文を動的に生成して実行すればいいと思います。
動的SQLの使用方法は、Oracleのマニュアルや市販のPL/SQLの解説書等を参考にしてください。
この回答への補足
早速の回答ありがとうございますm(_ _)m
動的SQLですか…
資料をいくつか見てみたのですが、これなら出来そうな気がします。
しかし、実際にやろうとしてることがサンプルにありません(苦笑
もしご存じであれば教えてください。
よろしくお願いします。
No.4
- 回答日時:
下記の文章で、字足らずがありました
>(画面横のオブジェクトブラウザは、)
の部分ですが、、、
画面横のオブジェクトブラウザは、すぐに反映されていませんが、成功したなら登録ができています。情報の更新をすることにより、表示します。
と言いたかったのです。。。
でわでわ
No.3
- 回答日時:
例.ローカルのpubsにテーブル1・テーブル2があり、ストアドをそのpubsデータべースに登録する方法
注意.SQL Server Enterprise Managerだけで行うこともできますが、ほとんどの人が開発はSQLクエリアナライザを使用していますので、そちらで登録する方法を載せます。
※1.SQL Server Enterprise Manager 起動
※2.ローカル(local)のpubsデータベースまでたどりつく
※3.[ツール]→[SQL クエリ アナライザ]を起動
そうするとローカルのpubsデータベースに最初から接続されたクエリアナライザが起動する。
直接スタートから起動すると、自分で接続先を指定する必要がある。
現在接続の変更は、画面上のプルダウンにて選択可能。
そこがpubsになっていたらOK
※4.#2で書いたサンプルを貼り付ける
※5.クリエイト文のコメントをはずす
--CREATE PROCEDURE TEST
↓
CREATE PROCEDURE TEST
※6.F5を押す(実行)
エラーが出なければ、ストアド名:TESTが作成される。
(画面横のオブジェクトブラウザは、)
もう一度F5を押すと、エラーが出る。(オラで言うdropが必要)
※7.一度作成されたなら、クリエイト文は2度と使わない
その代わり編集を行うときは、ALTERの方を使用する。
SQL鯖はDROPしてCREATEではなく、既存の物に変更を行うようにする。
編集したら再度F5で実行することにより、ストアドは更新される。
※8.クエリアナライザの左上に、エクセルで言う新規作成ボタンみたいのがあるので、それを押す。
(新規クエリが開く)
※9.以下の命令を記載して実行
EXEC TEST 1
TESTというストアドにパラメータ「1」を渡して、実行を行うと言う意味
もしストアドで返しているリターン値を取得したいなら
DECLARE @IntRet INT
EXEC @IntRet = TEST 1
とすることで、変数IntRetにステータスをセットすることもできる。
ここら辺はSQLの教本を見てください。
もしエラーが起きるなら、※7を参考に修正してください。
クエリアナライザを閉じるとき「保存しますか?」と聞いてきますが、実行することにより、ストアドは更新されますので、特に保存する必要はないです。ただし、実行が成功していないストアドは更新されていませんので、ご注意を・・・
「その保存しますか?」がうっとうしく思える場合(私ですが・・・)、
[ツール][オプション][全般][ファイルを閉じるとき・・・]と言うチェックボックスがありますので、そちらを使用してください。
No.2
- 回答日時:
> 1 注文数×単価
> 2 在庫数×単価
を
1 注文数*単価
2 在庫数*単価
にしてください。
--CREATE PROCEDURE TEST
--ALTER PROCEDURE TEST
(
@in計算式IDINT
)
AS
DECLARE @計算式VARCHAR(100)
DECLARE @ErrorSave int--ErrorCode
DECLARE @RowCnt int--RowCount
DECLARE @StrSQLNVARCHAR(3000)
--計算式を取得
SET @計算式 = (
SELECT計算式
FROMテーブル1
WHEREID = @in計算式ID)
SELECT @RowCnt = @@ROWCOUNT,@ErrorSave = @@ERROR
--データが取得できなかったり、エラーが発生したらエラー
IF (@RowCnt = 0) OR (@ErrorSave != 0) GOTO PGMERR
--式が読み取れなかったらエラー
IF (@計算式 IS NULL) GOTO PGMERR
SET @StrSQL = N'SELECT *,(' + @計算式 + ') ''' + @計算式 + ''''
SET @StrSQL = @StrSQL + N' FROM テーブル2'
EXEC SP_EXECUTESQL @StrSQL
SELECT @ErrorSave = @@ERROR
--エラーが発生したらエラー
IF (@ErrorSave != 0) GOTO PGMERR
PGMEND:
--成功はステータス1を返す
RETURN(1)
GOTO PGMEXIT
PGMERR:
--失敗はステータス-1を返す
RETURN(-1)
GOTO PGMEXIT
PGMEXIT:
この回答への補足
プログラムまで考えてくれてありがとうございますm(_ _)m
そこで、質問があるのですが…。
このプログラムは、プロシージャのところに書けばよいのでしょうか?
でも、プロシージャにはRETURNは使えないようなので、
FUNCTIONになるのでしょうか?
初歩的な質問で申し訳ありません。
オラクルは、テーブル・ビューしかさわった事のない初心者なので、
もしよろしければ、教えて頂けないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Excel(エクセル) VLOOKUP 構造化参照について 1 2023/04/24 19:39
- その他(お金・保険・資産運用) 至急!【Wolt】各メニューの価格設定の簡単な計算方法 3 2023/03/05 11:58
- 会社・職場 ドン・キホーテで働いたことのある方にお聞きします。 求人に商品の、陳列や補充、在庫管理、発注とありま 2 2022/04/13 18:57
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- Oracle SQL update方法 2 2022/06/22 14:07
- その他(Microsoft Office) excel テーブル 4 2023/03/18 16:11
- Excel(エクセル) グループの最後の行に書式、計算式なども同じ行を追加するマクロを教えてもらえませんか。 7 2022/05/18 10:13
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- 電気・ガス・水道 冷凍庫の電気代の計算のしかた 4 2023/08/07 08:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ストアドプロシージャの多用で...
-
ストアド(PL/SQL)でログイン処...
-
ストアドプロシージャでのファ...
-
「マスタ」と「テーブル」の違...
-
2つのテーブルから条件に一致...
-
ACCESSのSQLで、NULLかNULLでな...
-
クエリのキャンセルがいつにな...
-
ACCESS 一つのフィールドに複...
-
オラクルではできるのにSQLSERV...
-
SELECT時の行ロックの必要性に...
-
3つ以上のテーブルをUNIONする...
-
Access 削除クエリが重い
-
Access VBA [リモートサーバー...
-
データの二重表示の原因
-
IFで条件を分岐させてのINSERT...
-
sqlserverで集計結果をUPDATEし...
-
ユニオンクエリで繋げられるテ...
-
Accessにインポートしたら並び...
-
ユニオンクエリの結果をテーブ...
-
[ BETWEEN ] vs [ >= AND <= ]
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLServer 分散トランザクショ...
-
エクセルアドインの使用方法に...
-
ストアドでコンピュータ名の取得
-
ストアドプロシージャーのパラ...
-
ストアドプロシージャでのファ...
-
ストアド、トリガーの同時呼出
-
SQL Server INSERTのトリガで採番
-
ストアド更新履歴
-
SQLServerでOracleシーケンスの...
-
トリガが完全にかからない
-
ストアドでXMLファイルを読込む...
-
ソリューションエクスプローラ...
-
ストアドプロシージャの多用で...
-
ストアドプロシージャ
-
SQLServerのトリガ機能について...
-
エクセルの関数で
-
T-SQLで一時テーブルの名前を毎...
-
SQL Serverトリガの中でDMLの種...
-
「マスタ」と「テーブル」の違...
-
オラクルではできるのにSQLSERV...
おすすめ情報