工作上遇到一個奇怪的需求 , 需要直接用 oracle 去呼叫 web api , 順手筆記一下 , 寫得比較散
後來又遇到類似問題 , 我又補一個實際需求 , 可以參考這篇
下載 oracle image 並且執行
用 docker ps 看是否啟動成功 , 這邊其實要設定一堆東西 , 像是開啟 hyper-v , 設定 BIOS , 因為沒逐步筆記就沒寫 , 另外 windows 跟 linux 差異也不小
1 | docker ps |
萬一炸出以下 error
1 | error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.38/images/json: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running |
請輸入以下命令即可
1 | cd "C:\Program Files\Docker\Docker" |
登入才可以抓 oracle 的 docker , 拉 oracle docker
1 | docker login |
查剛剛拉下來的 oracle 12c docker
1 | docker image ls |
–name 設定名稱 -p 設定 port 跟實體的 mapping
1 | docker run -d -it --name oracle -p 1521:1521 -p 5500:5500 store/oracle/database-enterprise:12.2.0.1 |
停止所有 docker 容器
1 | docker stop $(docker ps -q) |
開啟容器 5865db66532a => 這個是 ID , 只要打前幾碼即可
1 | docker ps -a |
檢查 docker 容器狀態的 json
1 | docker container inspect oracle |
搭配 powershell 檢查 ip
1 | (docker container inspect 56b | ConvertFrom-Json).NetworkSettings.Networks.IPAddress |
移除 container
1 | docker container rm oracle |
oracle container 操作與設定
sqlplus 登入
1 | docker exec -it oracle bash -c "source /home/oracle/.bashrc; sqlplus /nolog" |
在 sqlplus 切換到 sysdba
1 | connect sys as sysdba; |
SID:ORCLCDB
帳號:SYS
密碼:Oradoc_db1
sql developer
我的環境 openjdk version “1.8.0_282”
sql developer 設定 java home
版本需要 1.8.0_171 or java 11.1 以下
msopenjdk
1 | C:\Users\YourName\AppData\Roaming\sqldeveloper\20.4.1\product.conf |
設定 product.conf
1 | SetJavaHome C:\Program Files\Java\jdk-11.0.11+9 |
sqlplus 連線設定
資料庫類型 Oracle
使用者名稱 SYS
密碼 Oradoc_db1
主機名稱 localhost
連接 port 1521
SID or 服務名稱擇一即可
SID ORCLCDB
服務名稱 ORCLCDB.localdomain
oracle 日常操作
1 | #登入 |
設定 sql developer DBMS_OUTPUT.PUT_LINE(‘ERROR’);
1 | SET SERVEROUTPUT ON |
實測 http get web request
這個網站可以通 GET 撈假資料
建立測試用的 stored procedure
參考網址
主要參考
1 | --資料表 |