無理であればそれはそれで構わないのですが、何とかしてみたいです。 0432NAME IS NULL2022/06/30(木) 19:00:54.04ID:nTfyV+3G>>431 exist 0433NAME IS NULL2022/07/02(土) 20:51:16.97ID:???>>432 も、もう少し…ヒント頂けませんか? existsは解るのですがその途中ともうしますか… 0434NAME IS NULL2022/07/03(日) 00:22:49.98ID:ZCexl0GZ>>433 まずは1~5の条件に当てはまるレコードを取得するSQLを作ってください。 0435NAME IS NULL2022/07/03(日) 06:24:10.23ID:???>>433 まず、自分で>>431で書いたことを実現するためのSQLコードを書いてみては? そして所望の出力を追加して、その間をつなぐ方法を自分で考えて、だめならやったこと全てを示して誰かに相談すると良い。 0436NAME IS NULL2022/07/05(火) 13:18:01.25ID:???>>431 効率は知らん、あとカンマ区切りで出力したければググってくれ
> 1:項目X=10のものを含むグループ名 Select distinct グループ名 from テーブル T where exists (Select * from テーブル where 項目名 = '項目X' and 数値 = 10)
> 2:項目X=20のものを含むグループ名 Select distinct グループ名 from テーブル T where exists (Select * from テーブル where 項目名 = '項目X' and 数値 = 20)
> 3.項目X=20かつ項目Y >=300を含むグループ名 Select distinct グループ名 from テーブル T where exists (Select * from テーブル where 項目名 = '項目X' and 数値 = 20) and exists (Select * from テーブル where 項目名 = '項目X' and 数値 >= 300)
> 4.項目X=20かつ項目Y >=200を含むグループ名 Select distinct グループ名 from テーブル T where exists (Select * from テーブル where 項目名 = '項目X' and 数値 = 20) and exists (Select * from テーブル where 項目名 = '項目X' and 数値 >= 200)
> 5.項目X=20かつ項目Y >=200かつ項目Z >= 200を含むグループ名 Select distinct グループ名 from テーブル T where exists (Select * from テーブル where 項目名 = '項目X' and 数値 = 20) and exists (Select * from テーブル where 項目名 = '項目X' and 数値 >= 200) and exists (Select * from テーブル where 項目名 = '項目Z' and 数値 >= 200) 0437NAME IS NULL2022/07/05(火) 13:22:13.96ID:??? すまん、条件足らんかった
> 1:項目X=10のものを含むグループ名 Select distinct グループ名 from テーブル T where exists (Select * from テーブル where グループ名 = T.グループ名 and 項目名 = '項目X' and 数値 = 10)
> 2:項目X=20のものを含むグループ名 Select distinct グループ名 from テーブル T where exists (Select * from テーブル where グループ名 = T.グループ名 and 項目名 = '項目X' and 数値 = 20)
> 3.項目X=20かつ項目Y >=300を含むグループ名 Select distinct グループ名 from テーブル T where exists (Select * from テーブル where グループ名 = T.グループ名 and 項目名 = '項目X' and 数値 = 20) and exists (Select * from テーブル where グループ名 = T.グループ名 and 項目名 = '項目X' and 数値 >= 300)
> 4.項目X=20かつ項目Y >=200を含むグループ名 Select distinct グループ名 from テーブル T where exists (Select * from テーブル where グループ名 = T.グループ名 and 項目名 = '項目X' and 数値 = 20) and exists (Select * from テーブル where グループ名 = T.グループ名 and 項目名 = '項目X' and 数値 >= 200)
> 5.項目X=20かつ項目Y >=200かつ項目Z >= 200を含むグループ名 Select distinct グループ名 from テーブル T where exists (Select * from テーブル where グループ名 = T.グループ名 and 項目名 = '項目X' and 数値 = 20) and exists (Select * from テーブル where グループ名 = T.グループ名 and 項目名 = '項目X' and 数値 >= 200) and exists (Select * from テーブル where グループ名 = T.グループ名 and 項目名 = '項目Z' and 数値 >= 200) 0438NAME IS NULL2022/07/05(火) 21:32:44.44ID:??? さらにすまん、見直したら項目名間違えてたわ まあ内容理解出来たらすぐに気付くと思うが
> 1:項目X=10のものを含むグループ名 Select distinct グループ名 from テーブル T where exists (Select * from テーブル where グループ名 = T.グループ名 and 項目名 = '項目X' and 数値 = 10)
> 2:項目X=20のものを含むグループ名 Select distinct グループ名 from テーブル T where exists (Select * from テーブル where グループ名 = T.グループ名 and 項目名 = '項目X' and 数値 = 20)
> 3.項目X=20かつ項目Y >=300を含むグループ名 Select distinct グループ名 from テーブル T where exists (Select * from テーブル where グループ名 = T.グループ名 and 項目名 = '項目X' and 数値 = 20) and exists (Select * from テーブル where グループ名 = T.グループ名 and 項目名 = '項目Y' and 数値 >= 300)
> 4.項目X=20かつ項目Y >=200を含むグループ名 Select distinct グループ名 from テーブル T where exists (Select * from テーブル where グループ名 = T.グループ名 and 項目名 = '項目X' and 数値 = 20) and exists (Select * from テーブル where グループ名 = T.グループ名 and 項目名 = '項目Y' and 数値 >= 200)
> 5.項目X=20かつ項目Y >=200かつ項目Z >= 200を含むグループ名 Select distinct グループ名 from テーブル T where exists (Select * from テーブル where グループ名 = T.グループ名 and 項目名 = '項目X' and 数値 = 20) and exists (Select * from テーブル where グループ名 = T.グループ名 and 項目名 = '項目Y' and 数値 >= 200) and exists (Select * from テーブル where グループ名 = T.グループ名 and 項目名 = '項目Z' and 数値 >= 200) 0439NAME IS NULL2022/07/12(火) 16:19:05.29ID:???>>436-438 あ、ありがとうございます。 今までかかりましたがようやく実装できました…。 自分にとっては奇跡のSQLです。 涙でそうです。 0440NAME IS NULL2022/08/23(火) 03:05:31.97ID:??? dockerで19cのコンテナ作成したんですが、sysにログインできない理由が分かる方いませんか?
docker exec -it oracle19 sqlplus SYS/oracle@ORCLPDB1 >ERROR: >ORA-28009: connection as SYS should be as SYSDBA or SYSOPER
なんとなくsysへのログインがsysdbaとは別のプロトコルで弾かれてそうな気がしてます 0447NAME IS NULL2022/08/25(木) 10:33:15.60ID:??? oracle 19cで取り急ぎ全てのログを取得する統合監査ポリシーを作りたいのですが ACTIONS ALL; ではうまく取得できず良い方法があればご教示いただけないでしょうか 0448NAME IS NULL2022/08/28(日) 20:03:40.61ID:+3KtlnyL>>444 SYSユーザーではPDBにログインできない仕様だとなぜわからないのか?
PDBの管理者を使うんだよ。 0449NAME IS NULL2022/08/28(日) 20:04:41.77ID:+3KtlnyL>>446 SYSユーザーはPDBのユーザーではありません。 0450NAME IS NULL2022/08/28(日) 20:11:11.32ID:+3KtlnyL>>446 あのさ、ネットサービス名の使い方がおかしと英語のメッセージがでているのに、その滅茶苦茶なネットサービス名の使い方は、どこで知ったのか? 0451NAME IS NULL2022/08/29(月) 18:39:36.50ID:??? くっそおお 0452NAME IS NULL2022/08/29(月) 20:13:15.09ID:7s6JjWcs sqlplus /@ORCLPDB1 as sysdba >invalid username/password; logon denied
OS認証なのにOracle Net接続をしようとしているなんて頭にウジでも湧いてんのか? 0453NAME IS NULL2022/09/01(木) 14:26:30.92ID:???>>448 馬鹿かw CDBって書いてあんだろ 0454NAME IS NULL2022/09/01(木) 14:29:05.54ID:??? 質問したら罵倒する質問板ってヤバいな 0455NAME IS NULL2022/09/01(木) 14:30:54.96ID:???>>450 調べてもわからんから聞いてんのに頭沸いてんのか??? 0456NAME IS NULL2022/09/01(木) 14:33:14.11ID:??? コミュ能力皆無のエンジニア()なんていらねーんだよw 0457NAME IS NULL2022/09/01(木) 14:34:26.58ID:??? コミュ力ゼロの結婚もできないきたねー部屋で毎食ウーバー野郎がよぉ 0458NAME IS NULL2022/09/14(水) 18:20:15.86ID:Jwyj/ak0 oracle 19c RAC環境下での質問です。
encryption encrypt句をつけてcreate tablespaceを行った表領域に対してoffline復号化を行うと、 ORA-28435: cannot decrypt data file +DATA/ORCL/DATAFILE/hoge.268.1115279105 which is not encrypted with the database key というエラーが出て復号化できません。onlineなら復号化できるのですが…。 offline復号化を行う方法、もしくは出来ない理由を教えていただけないでしょうか? 0459NAME IS NULL2022/09/15(木) 08:21:18.99ID:??? docker exec -it oracle19 sqlplus / as sysdba >net service name is incorrectly specified
エラー的にネットサービス名が正しくないみたい。 export ORACLE_SID=〜〜 で設定しておくといけるんじゃない? CDBに繋ぐのかPDBに繋ぐのかは分からないけど。 0460NAME IS NULL2022/09/16(金) 20:14:38.62ID:bDV4ndIn>>459 環境変数も知らないやつは相手にしなくていいよ 0461NAME IS NULL2022/09/16(金) 20:17:57.85ID:bDV4ndIn>>458 復号化できる情報が外部にあったら、暗号化の意味が薄れるだろw 0462NAME IS NULL2022/09/16(金) 23:17:43.05ID:??? 〉〉461 暗号化してない表領域をオフラインで暗号化した場合は、オフラインで復号化出来ますよね? その場合は、外部に復号化出来る情報があるってことなんでしょうか? 0463NAME IS NULL2022/09/16(金) 23:32:40.60ID:???>>461 https://blogs.oracle.com/sec/post/057_tde これを見ると、表領域暗号化鍵はデータファイルのヘッダーにあるという話です。 オフライン暗号化の後にオフライン復号化が出来るのならば、オフライン復号化の際にもヘッダー内の表領域暗号化鍵を見ていると思われるので、表領域作成時に暗号化した場合もオフライン復号化出来るのではないかと思ったのです。 オフライン暗号化の場合は、復号化に必要な情報(表領域暗号化鍵?)が外部にある、ということなのでしょうか…? 0464NAME IS NULL2022/09/19(月) 15:26:15.66ID:kkHv2WY1>>463 ちょっと間抜けな発想だな。
データファイルの仕様は公開されていないだろ?
Excelファイルだって、構成されているXMLにたくさんトラップがあって、XMLをいくら解析しても、Excelが読み書きするXMLを、辻褄の合うように直接、変更はできない。 0465NAME IS NULL2022/09/19(月) 15:27:37.94ID:kkHv2WY1 データファイルを見れば鍵がわかるようなセキュリティでは、暗号化も鍵も意味をなさない。 0466NAME IS NULL2022/09/19(月) 17:36:39.75ID:???>>464 >ちょっと間抜けな発想だな。 これは同意するが、Excelの例えは同程度に間抜けな発想だぞ 0467NAME IS NULL2022/09/19(月) 18:13:33.71ID:kkHv2WY1>>466 Excel完全互換のソフトウェアを作れないようにデータの持ち方を変にしている。
ExcelだってパスワードをXMLから取り出せるわけではない。
例えが微妙なのは自覚している。 0468NAME IS NULL2022/09/19(月) 18:15:31.47ID:kkHv2WY1 パスワードは付箋に書くか、テプラで書いて貼っておくこと! 0469NAME IS NULL2022/09/19(月) 22:38:40.36ID:??? 使ったことないし知らんけど、walletとか使ってたらオフラインでも復号化できたりするんでない? できないならオフライン復号化の存在意義がわからんし。 0470NAME IS NULL2022/09/20(火) 16:07:35.58ID:78AIi3I6>>464 >>465 レスありがとうございます。 walletに保存されたマスター暗号化キーによって、データファイルのヘッダーにある表領域暗号化キーが暗号化されているため、データファイルを直接見ても復号化のための情報は分からない、という点は理解しています。 ログを貼ってしまいますね。お目汚し失礼します。
SQL> select tablespace_name, status, encrypted from dba_tablespaces;
TABLESPACE_NAME STATUS ENC ------------------------------ --------- --- ##略## HOGE ONLINE YES
6 rows selected.
SQL> alter tablespace hoge offline;
Tablespace altered.
SQL> alter tablespace hoge encryption offline decrypt; alter tablespace hoge encryption offline decrypt * ERROR at line 1: ORA-28435: cannot decrypt data file +DATA/ORCL/DATAFILE/hoge.267.1115866387 which is not encrypted with the database key ##オフライン復号化だとエラーになる
SQL> alter tablespace hoge online;
Tablespace altered.
SQL> alter tablespace hoge encryption online decrypt;
Tablespace altered.
SQL> select tablespace_name, status, encrypted from dba_tablespaces;
TABLESPACE_NAME STATUS ENC ------------------------------ --------- --- ##略## HOGE ONLINE NO