1. 程式人生 > >Oracle 同一SID下不同使用者同名表名問題

Oracle 同一SID下不同使用者同名表名問題

一般來說hibernate配置資料庫連線只需要下面幾行配置

##Oracle 9i/10g  
hibernate.dialect org.hibernate.dialect.Oracle9Dialect  
hibernate.connection.driver_class oracle.jdbc.driver.OracleDriver  
hibernate.connection.username xxxx  
hibernate.connection.password xxxx  
hibernate.connection.url jdbc:oracle:thin:@127.0.0.1:1521:SID  
Oracle是允許不同使用者在同一個SID中建立同名的表的,但是如果按照上面的配置
Hibernate的SchemaUpdate操作是不會認帳的
SchemaUpdate指的hibernate配置成
hibernate.hbm2ddl.auto update
例如:
    假設,有模型Entity,已用A使用者執行過配置有hibernate的系統或者程式,則,此時資料庫中有A.Entity表存在了。將hibernate配置使用者改為B,然後執行系統或者程式。將會發現hibernate不會為我們建立B.Entity表。
    如果Entity模型在以A使用者執行過後經過修改,同時會發現hibernate既不會建立B.Entity表,也不會更改A.Entity表的結構


如果想讓hibernate執行上述描述的特殊操作方式需要在hibernate的配置上指明使用者的Schema名,即在hibernate配置新增上
hibernate.default_schema xxxx  
做個說明,Oracle中表的完整定位為username.tablename,而新增這個hibernate.default_schema的配置就是使hibernate在查詢表的時候加上這個username的字首

相關推薦

Oracle 同一SID不同使用者同名問題

一般來說hibernate配置資料庫連線只需要下面幾行配置 ##Oracle 9i/10g hibernate.dialect org.hibernate.dialect.Oracle9Dialect hibernate.connection.driver_

[Hibernate]Oracle 不同使用者同名問題

一般來說Hibernate配置資料庫連線只需要下面幾行配置 Java程式碼   ##Oracle 9i/10g  hibernate.dialect org.hibernate.dialect.Oracle9Dialect  hibernate.connectio

mysql建立觸發器實現相同伺服器不同庫的資料同步的錯誤收集

1、建立INSERT|UPDATE時,由於沒有加上declare和set語句,導致同步表中的大部分資料為null。 解決:參照建立MYSQL TRIGGER 2、1363 - There is no NEW row in on DELETE trigger 原因:delete觸發器不

mysql建立TRIGGER觸發器實現相同伺服器不同庫的資料同步

實現功能:mysql建立INSERT|UPDATE|DELETE觸發器實現相同伺服器下不同庫的表資料同步。比如table1表的資料有insert|update|delete操作,便同步到sync表中。然後再根據sync表中state(同步狀態)和oper(操作方式)欄位的狀態將sync表

阿里雲容器服務同一叢集不同可用區node上的容器通訊問題

建立了一個叢集cluster,所屬區可用區A,一併新增一個節點node-a,也在可用區A。 叢集新增已有節點,該節點在同區域可用區B上,執行完指令碼新增成功後成功新增節點node-b。 建立應用,起兩個例項,分別執行在兩個節點上。 問題:node-b節點上的服務可以訪問

同一域名不同path通過js中獲取域名下的cookie,拿不到cookie值

在前端開發過程中通過js設定/獲取cookie,有時候會碰到這個問題 域名:abc.com 通過以下程式碼設定cookie var date=new Date(); //獲取當前時間 var expiresDays=time;  //將date設定為n天以後的時間 da

github賬號與gitlab同一電腦不同SSH Key配置

很多情況下,大家都會遇到一個問題,自己電腦上配置的SSH Key可以與自己的gitbub賬號匹配,卻不能匹配公司內部的git伺服器賬號,即gitlab。下面我將講述這兩種賬號的配置過程: 1. github賬號SSH Key配置 (1) 設定git的名字和郵

python指令碼直接匯出oracle table到csv(./oracletest.py

#!/usr/bin/env python ##saveas oracletest.py ##chmod 755 oracletest.py ##./oracletest.py ab01_ import sys import 

linux 設置 MySQL8 大小寫不敏感方法,解決設置後無法啟動 MySQL 服務的問題

服務 修改 比較 數據庫 res 重啟 啟動 mys system 在安裝完成之後,初始化數據庫之前,修改 my.cnf 打開mysql配置文件 vim /etc/my.cnf 在尾部追加一行 lower_case_table_names=1 並保存,然後再初始化數據庫。

Oracle 和 AWS Redshift 獲取 資料庫所有和列名的

Oracle select table_name from user_tables where table_name like '%plnsm%'; select OWNER, TABLE_NAME, COLUMN_NAME from all_tab_columns where COLU

mybatis oracle不同空間重複與批量刪除,新增

mybatis自動生成中會遇到oracle不同表空間中有相同的表明,錯誤提示讓你選擇指定表空間 需要在生成的xml中新增指定的表空間使用者名稱就可以了 <!--   tableName="你要生成的資料庫表名" --><table schema="c##t

Oracle資料庫同一個例項不同使用者重複的問題

首先我們要明確:表名和使用者沒有關係,關鍵的一個例項下,不能有相同的表名存在。也就是說Oracle資料庫系統中,可以有多個數據庫,每一個數據庫可以有多個數據表。同一個資料庫中不能有相同名稱的資料表,但在不同的資料庫中可以有相同的資料表名。 通常情況我們都是

Oracle小技巧_不同空間不同用戶導入導出數據dmp

16px 這就是 直接 改變 索引 什麽 rom oracle數據庫 添加 【博主註:數據庫方面 ITPUB網站及博客內容非常豐富翔實】 轉載來源 ITPUB 博客經常有人會問:原來的數據在USERS表空間裏面,我想把它IMP進APP表空間,我已經修改了目的

oracle訪問不同使用者的不新增使用者名稱字首

  問題的出現,是技術的不斷推進。為了更好地實現價值的提升! 01、用檢視   create view tab1 select * from B.tab1;       //在A使用者下執行 02、同義詞 grant CREATE SYNONYM&nb

Web專案防止同一賬號在不同session重複登入

一、session簡介 瀏覽器在請求伺服器時,伺服器都會建立一個session,session負責瀏覽器與伺服器之間的會話。session的存在是為了維護瀏覽器和伺服器之間互動時保留一些互動資料,例如使

nginx反向代理,對同一域名同一不同動作,走不同的服務埠的配置

1.問題描述: 訪問www.localhost:80和www.localhost:80/api走不同的後臺服務,www.localhost:80反向代理成百度,www.baidu.com;

Oracle exp/imp匯入不同空間

    我們在做Oracle資料庫表遷移時,通常會有這種需求,在開發階段,可能所有使用者的資料都放在一個表空間中,比如users表空間,但是在生產中,我們希望將每個使用者的資料分別放到不同表空間中,此時直接使用exp/imp是不具備選擇表空間功能的(expdp/impdp可

不同域名指向同一伺服器不同資料夾

NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot /var/www/html/aa/ ServerName www.a

同一伺服器上不同資料庫之間同步資料

在同一個伺服器上有兩個資料庫A和B,現在想取B資料庫中的某個表中的資料插入到A中,做法是: 1、首先在A資料庫中建立一個dblink,其中testLink是dblink名字隨便取,username跟password都是B資料庫的登入名跟密碼; create public database link tes

Oracle 10g通過建立物化檢視實現不同資料庫間級別的資料同步

Oracle 10g 物化檢視語法如下: create materialized view [view_name] refresh [fast|complete|force] [ on [commit|demand] | start with (start_t