問題タブ [stored-functions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
10543 参照

mysql - mysql のストアド関数内の SELECT ステートメントで変数を OFFSET として使用する

私は、mySQL データベースのストアド関数を書くことにまったく慣れていないので、ここでやろうとしていることがまったく可能かどうかはわかりません。

テーブルのランダムな行から列を返す関数が必要です。ORDER BY RAND() メソッドを使用してそれを行うのではなく、次のようにします。

そのような本体を持つ関数を作成すると、MySQL はエラーをスローします。しかし、ハードコードされた数値を OFFSET として使用すると、問題なく動作します。

誰かがこの主題に光を当てることができますか.

Windows ボックスで MySQL 5.0.45 を実行しています。

ありがとう

0 投票する
10 に答える
81846 参照

sql - SQL Server - 「sys.functions」はどこですか?

SQL Server 2005 にはsys.XXX、私が頻繁に使用するシステム カタログに関する優れたビューがあります。

私がつまずいたのはこれです:sys.proceduresストアドプロシージャに関する情報を表示するビューがあるのにsys.functions、ストアド関数について同じ情報を表示するビューがないのはなぜですか?

誰もストアド関数を使用していませんか? たとえば、計算列などに非常に便利です。

欠落している特定の理由がありますか?それとも、単にカタログ ビューsys.functionsに入れるほど重要でないと考えられていたものですか? sysSQL Server 2008 で利用できますか?

0 投票する
1 に答える
800 参照

sql - MSSQL 2005 ストアド プロシージャで使用可能な最大のテキスト変数は?

MSSQL ストアド プロシージャで使用可能な最大サイズのテキスト変数は? 使用できる最大サイズは varchar(8000) です。

ntext、text などを使用できます。では、varchar をつなぎ合わせる必要がありますか?

CLR ストアド プロシージャを使用した場合はどうなりますか??

0 投票する
4 に答える
277 参照

mysql - mysqlストアド関数の奇妙な問題

テスト用なので、

しかし、かなり奇妙です:

0 投票する
4 に答える
8904 参照

sql - この MySQL 関数が null を返すのはなぜですか?

説明: 以下からわかるように、実際に実行されたクエリには 4 つの結果が返されます。私が行ったことは、アイテムを連結して返すだけですが、予期せず、null です。

コードは一目瞭然だと思います:

コードが自明であるとは思わない人のために:

関数が を返すのはなぜNULLですか?

0 投票する
1 に答える
638 参照

mysql - MySQL のストアド関数は、ユーザーが指定した日付が好きではありませんか?

MySQL にストアド関数があります。

かなり基本的なもので、ID、開始日、終了日を受け取り、その日付範囲のログイン数を返します。実行するたびに、0が返されます。where句の日付セクションを削除しない限り。次に、実際の数値を返します。または、保存された関数に手動で日付を入れるだけでも機能します...したがって、日付の問題ではありませんが、パラメーターリストを介して日付を提供している場合にのみ、それは気に入りません。

これが起こる原因について何か考えはありますか?格納された関数に手動で日付を入れることができ、それが機能するという事実は本当に私を悩ませています。ここで台無しになる可能性のある多くのことが起こっているわけではないので、次に何をしようか迷っています。

また、保存された関数/手順をデバッグする方法はありますか。0 が返ってきましたが、これをデバッグして何が起こっているのかを調べる方法はありますか?

0 投票する
2 に答える
12915 参照

oracle - ado.netからOracleストアド関数を呼び出して結果を取得する正しい方法は何ですか?

adoを使用してOracleデータベースに接続するvb.netコードベースがあります。呼び出すストアドプロシージャがたくさんあり、一部には複数のoutパラメータがあります。ただし、ストアド関数を呼び出す必要があり、関数の結果をVBコードに戻す方法がわかりません。

編集:整数を返します。

ado.netからoracleストアド関数を適切に呼び出すにはどうすればよいですか?

0 投票する
6 に答える
15386 参照

database - PLSQL DeveloperでDMLを含むOracle関数をテストする方法は?

DML を含まない Oracle ストアド関数の戻り値を選択するには、関数を選択するだけです。

関数に DML が含まれている場合 (この場合、関数に渡された引数をログに記録するためのいくつかの挿入)、上記のクエリは許可されません。(ORA-14551)

この関数の戻り値を選択/表示するにはどうすればよいですか?

plsql 開発者で「テスト」を選択すると、plsqldev は次のようなものを生成します。

「結果」変数の値を表示するにはどうすればよいですか?

開始/終了ブロック内で生成されます

0 投票する
4 に答える
270 参照

postgresql - Postgresql を中間層として使用します。意見が必要

私はいくつかの意見が必要です。

友人のために POS と在庫管理ソフトウェアを開発する予定です。これは 1 人の小規模プロジェクトなので、アーキテクチャをできるだけシンプルにしたいと考えています。

私は Winform を使用して GUI を開発しています (Web インターフェイスは POS ソフトウェアには意味がありません)。データベースには Postgresql を使用しています。

プログラムはユーザーの役割に基づいてアクセスを制御するため、Web サーバーを使用してユーザー アクセスを制御する中間層を開発するか、Postgresql で直接ユーザー権限を設定する必要があります。

中間層の開発には時間がかかり、メンテナンスはより複雑になります。そのため、データベースで直接アクセス制御を設定することを好みます。

データベースを使用してユーザー アクセスを制御するのは面倒なようです。ロールごとに特権を設定する必要があります。一部のテーブルでは、権限が列レベルであることは言うまでもありません。これにより、セキュリティに関する推論が非常に難しくなります。

だから私が今やっていることは、スーパーユーザー以外はすべてのテーブルにアクセスできないように設定することです. プログラムは public ロールを使用してデータベースに接続します。一般ユーザーはテーブルにアクセスできないため、SECURITY DEFINER (スーパーユーザー ロール) を使用して、一般ユーザーがアクセスできるストアド ファンクションを作成します。テーブルにアクセスする唯一の方法は、これらの関数を使用することです。

ユーザーの役割とパスワードを表にまとめます。スーパーユーザー以外は user テーブル自体にアクセスできないため、 login 関数を作成します。これを と呼びましょうfn_login(username, password)。ログインが成功すると、fn_login はセッション キーを返します。

他の関数を呼び出すには、ユーザーにセッション キーを提供する必要がありfn_purchase_list(session_key)ますfn_purchase_new(session_key, purchase_id, ...)

そのようにして、ストアド関数を API として扱っています。新しい Postgresql ロールを追加するのではなく、ユーザー テーブルに新しい行を追加するだけでよいため、新しいユーザーの追加はより簡単になります。列レベルで権限を設定する必要はありません。すべての制御はプログラムで行われます。

それで、あなたはどう思いますか?このアプローチは実現可能でスケーラブルですか? それを行うより良い方法はありますか?

ありがとう!

0 投票する
8 に答える
180941 参照

mysql - MySQL でストアド プロシージャ/関数の定義を表示する

sp_helptextMicrosoft SQL Serverと同様に、ストアド プロシージャまたは関数の定義を表示する MySQL コマンドは何ですか?

SHOW PROCEDURE STATUS利用可能な手順のリストが表示されることを知っています。単一のプロシージャーの定義を確認する必要があります。