問題タブ [ansi-sql]
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.
sql - Oracleスクリプトでの変数の使用
レポートを生成する複雑なクエリがあります。クエリには、さまざまな製品の3列のテーブルを生成するいくつかのサブクエリがあります。各サブクエリは1行を返します。次に、返されたすべての行を結合する必要があります。ただし、要件が1つあります。サブクエリの結果行がない場合は、とにかく対応する商品を最終レポートに含める必要がありますが、Trades_Countがゼロに等しいことを指定します。
これは、変数のセットを使用して実現できます。次のコードは、MSSQLServerで完全に機能します。
私はT-SQL固有のものは何も使用していないと思いますが、純粋なANSI-SQLを使用しています(100%確実ではありませんが)。
したがって、これはOracleでは機能しません。
まず、DECLAREキーワードが1つだけ必要です。次に、Begin…End実行スコープを使用するように強制します。次に、私が行うように変数を割り当てることができません(上記の例を参照)–代わりに「SelectINTO」ステートメントを使用する必要があります。すべての計算が完了した後、ローカル変数から値を選択することはできません。ヘック。
Oracleで動作させる方法を知っている人はいますか?
ありがとう!
sql - SELECT 句と FROM 句のサブ SELECT は標準に準拠していますか?
タイトルはほとんどそれをすべて言います。「標準に準拠した」SQL とは、どの SQL 標準でも許可されている SQL 構成体を意味します。
「Understanding SQL」の本に目を通してみましたが、サブクエリについては,などの節の中WHERE
でのみ言及されており、 andではありません(または、何かが欠けている可能性があります)。GROUP BY
HAVING
SELECT
FROM
MS SQL ではサブ SELECT がSELECT
とで許可されていることを知っていますFROM
。それが標準的な動作であるかどうかを知りたいです。それとも、標準ではなく、主要な SQL データベースに実装されているのでしょうか (MS SQL 以外の DB の経験はほとんどありません)。
sql - Oracle 10g は ANSI SQL-1992 サブストリング関数標準に準拠していますか?
ANSI SQL-1992 標準の 132 ページによると、これは ANSI サブストリング関数の構文です。
Oracle 10g スキーマでの SQL 開発者による簡単なテスト:
結果:
これは、Oracle 10g がこの特定の ANSI 標準に準拠していないということですか?
ベンダー固有の関数ではなく、ANSI 標準の部分文字列関数を使用したいだけです。
mysql - MySQL アプリケーションの安全なマルチテナンシー
ユーザーが「プロセス」と対話する JSP/MySQL Web サービスがあります。ユーザーは、特定のプロセスのデータのアップロード、構成、レポートの表示などを行うことができます。また、新しいプロセスを作成したり、複数のプロセスを比較するレポートを実行したりすることもできます。
現在、プロセス ID は URL (GET パラメーター) で指定されているため、すべてのユーザーが任意のプロセスと対話できます。 このサービスにセキュリティとマルチテナンシーを追加するよう依頼されました。 簡単にするために、各テナントが一連のプロセスに完全にアクセスできるとしますが、複数のテナントがプロセスにアクセスできる場合があります。
私の好みのアプローチ:
- ユーザーテーブルを追加します (PK_User_Id、password_hash、名前など)
- アクセス テーブル (FK_User_Id、FK_Process_Id) を追加します。
- セッションに Tenant_Id を格納する SSL ログイン ページ
- アクセスできる Process_Id を選択し、それをセッションに保存できるプロセス選択ページ
- ほとんどすべてのページは、セッションの Process_Id に基づいて SQL クエリを作成します。
- Create、Select、Compare などの「クロスプロセス」ページは、代わりにセッションの User_Id から機能します。
私の上司は、これは外部コード監査を満たすのに「十分」安全ではないと考えています。彼は、気まぐれな開発者が、ある顧客のデータを別の顧客に公開するクエリなどを作成できるのではないかと心配しています。
彼は、ANSI SQL のビルトイン ROLES (アプリは DB に依存しない必要があります) を使用して、各ユーザーの db ロールを作成することも望んでいます。ロールは、ロールがアクセスできるテーブル、共有テーブルのどの行などの詳細を示します。このようにして、ログイン時に接続が「安全」になり、開発者のミスが問題を引き起こす可能性がなくなります。
- これは可能ですか?
- MySQL で動作する DB に依存しない「ロール」などはありますか?
- 主キーが「foo」の場合、テーブルに行を追加できることをロールで指定できますか?
- 私のシステムは業界標準で「十分に安全」ですか?
php - あるMySQLデータベースから別のMySQLデータベースにデータをインポートしますか?
あるMySQLDbから別のMySQLDBにデータをインポートする方法を教えてください。両方のデータベースのデータスキーマは完全に異なり、2番目のデータベースは最初のデータベースの正規化されたバージョンです。
前もって感謝します
sql - Oracle 独自の結合 - 複数の条件での結合
次の2つのバージョンのANSI準拠のSQL(機密データを保護するために列/テーブル名が変更されました)を使用しましたが、そのうちの1つは正しいロジックに従うことで私の要件を満たし、もう1つはそうではありません。
1)ANSI Join 1-Works
1) 次のような出力が得られます。
2) ANSI Join 2 - 機能しない
3) Oracle 独自の結合 - 機能しない
2) & 3) 次のような出力が得られます。
(2,ANSI) & (3,PROPRIETARY) が同等であることは理解しています。しかし、(1,ANSI) に相当する独自の SQL はありますか? どんな助けでも大歓迎です。ありがとう。編集:サンプル出力で質問を更新しました。
sql - SQL - 非アクティブなステータスのレコードのみを選択
次の要件があります。
すべての BS = 0 であるすべての CustID を選択したいので、上記の場合は CustID_3 のみを選択する必要があります。CustID_1、CustID_2 は少なくとも S=1 であるため、結果には表示されません。
どんな助けにも感謝します。
ありがとう!
sql - ANSISQLでEXISTSを選択する方法
クロスデータベース(少なくともSQL Server、Oracle、Postgre、MySQL、SQLite)を使用して、T-SQLで行うことを実行する方法はありますか?
FROM句がないため、これは有効なANSISQL構文ではないようです。現在、COUNT(*)を使用してこれを行っていますが、これは最適ではないと思います。
sql - ANSI sqlに存在しない場合にのみテーブルを作成する
まだ存在しない場合にのみ、SQL テーブルを動的に作成しようとしています。インターネットで多くのソリューションを見てきましたが、最も一般的なソリューションを見つけようとしている間、それらは通常特定のデータベースに依存しています。
私は常に CREATE コマンドを実行し、失敗した場合はテーブルが存在し、データの挿入を開始できると想定していました。この推論に欠陥は見当たりませんが (パフォーマンスの問題は考慮していません)、間違っている可能性があります。
これは受け入れられる方法ですか?
データベースに依存しない、またはすべての RDBMS が受け入れる ANSI SQL を使用する他の方法を提案できますか?
sql - 「LEFT JOIN」対「LEFT OUTER JOIN」
実際には違いがないことはわかっていますが、「LEFT JOIN」は ANSI 形式ですか、または「LEFT JOIN」に失敗して「LEFT OUTER JOIN」を必要とする RDBMS はありますか。[正しい ANSI 標準を取得するために、数回のクリックやフォームの入力などを省くことができるように、ここで質問しています!]