以下是实现版本控制的可行策略(使用"example"作为示例文档类型):
有一个原始文档,其中类型字段名为example_original.
对文档的后续更改都具有类型example_change和example_original文档的id作为键.此更改还将带有时间戳.
保留一个类型为example_current的doc,它是example_original的结果,所有example_change都是"applied".新的example_change文档将自动应用于此文档.
查找特定版本将包括检索example_original文档并应用所需的更改(主要是某个时间戳,但也可能是一些更改).
我应该提一下,我的用例将涉及对原始的有限数量的更改.大多数更新将包含新的原始文档.虽然这是我目前的用例,但我也会对涉及许多变更会导致的问题感兴趣.
你在这种方法中看到了什么利弊?
我很好奇Oralce JDBC瘦客户端如何实现查询超时.这可以通过调用java.sql.Statement的setQueryTimeout(int seconds)方法来设置.
这是在客户端的驱动程序本身实现的吗?是一个新的线程产生并加入?或者JDBC驱动程序是否只是向Oracle发送参数,然后它会强制执行超时?
达到超时后,客户端和数据库上的哪些资源被释放,哪些存在?即使客户端放弃了查询还是终止,Oracle是否继续运行查询?客户端是否还有游标对象?
谢谢
考虑这种情况:在数据库中,我有两个用户A和B及其相应的模式.
我想知道,我如何获取信息:Schema B中的USER A有哪些权限.
考虑这种情况:我们有两个用户及其相关的scehmas.我们有用户A和用户B.在A中,假设我们有TB1 TB2,在B中,我们说有TBa,TBb.现在我想知道如何找到用户A在Schema B上拥有的权限.
例如:用户A正在写:select * from B.TBb 这意味着用户A正在访问用户B的表,因此,它显示他具有SELECT权限.我想知道用户A在Schema B上拥有的所有权限.
应执行哪个查询以获取用户A在模式B上具有的权限列表.
我在oracle XE中创建了一个表,我有一个类型为date的字段.我希望如果可能的话,当我插入一行时,它会自动使用系统中的当前日期填充该字段.
我从SQL提示符插入行.
谢谢
*EDIT6:*这最终为我工作(从接受的答案):
var ret1 number
var tran_cnt number
var msg_cnt number
var rc refcursor
exec :tran_cnt := 0
exec :msg_cnt := 123
exec get_account(Vret_val => :ret1, Vtran_count => :tran_cnt, Vmessage_count => :msg_cnt, Vaccount_id => 1, rc1 => :rc)
print :tran_cnt
print :msg_cnt
print :rc
Run Code Online (Sandbox Code Playgroud)
SQL Developer让这个超级难/不可能?我不在乎该实用程序是否基于命令行; 我只是希望能够快速运行并查看它.如果它也能很好地捕获错误,那就太好了.能够逐步(交互式)登录,以及一次性指定所有内容(类似于典型的基于ftp/sftp cmd的客户端的工作方式)将会很棒.
我的平台是Windows Server 2008 + Cygwin.
编辑:也许你会知道如何使用Python编写脚本?
编辑2:在MSFT SQL服务器中,我只需输入:
get_user 1;
Run Code Online (Sandbox Code Playgroud)
然后突出显示它并点击F5,我得到:
login name
NULL Somename
Run Code Online (Sandbox Code Playgroud)
打印到输出窗口.Oracle SQL开发人员根本没有帮助.我不知道如何传入1,我不知道如何查看返回的实际行/记录.
编辑3:当我输入var rc refcursor;并选择并运行它时,我收到此错误(GUI):
An error was encountered performing the requested …Run Code Online (Sandbox Code Playgroud) oracle plsql stored-procedures sys-refcursor oracle-sqldeveloper
所以我试图计算零件数量,任务数量,每个工作的数量以及制造每项工作所花费的时间,但我得到了一些时髦的结果.如果我运行这个:
SELECT
j.id,
mf.special_instructions,
count(distinct p.id) as number_of_different_parts,
count(distinct t.id) as number_of_tasks,
SUM(distinct j.quantity) as number_of_assemblies,
SUM(l.time_elapsed) as time_elapsed
FROM
sugarcrm2.mf_job mf
INNER JOIN ramses.jobs j on
mf.id = j.mf_job_id
INNER JOIN ramses.parts p on
j.id = p.job_id
INNER JOIN ramses.tasks t on
p.id = t.part_id
INNER JOIN ramses.batch_log l on
t.batch_id = l.batch_id
WHERE
mf.job_description LIKE "%BACKBLAZE%" OR
mf.customer_name LIKE "%BACKBLAZE%" OR
mf.customer_ref LIKE "%BACKBLAZE%" OR
mf.technical_company_name LIKE "%BACKBLAZE%" OR
mf.description LIKE "%BACKBLAZE%" OR
mf.name LIKE "%BACKBLAZE%" OR
mf.enclosure_style …Run Code Online (Sandbox Code Playgroud) 我得到这个错误我无法弄清楚出了什么问题.
第1行的DECLARE
*
ERROR:
ORA-01422:精确提取返回超过请求的行数
ORA-06512:第11行
这是我的代码.
DECLARE
rec_ENAME EMPLOYEE.ENAME%TYPE;
rec_JOB EMPLOYEE.DESIGNATION%TYPE;
rec_SAL EMPLOYEE.SALARY%TYPE;
rec_DEP DEPARTMENT.DEPT_NAME%TYPE;
BEGIN
SELECT EMPLOYEE.EMPID, EMPLOYEE.ENAME, EMPLOYEE.DESIGNATION, EMPLOYEE.SALARY, DEPARTMENT.DEPT_NAME
INTO rec_EMPID, rec_ENAME, rec_JOB, rec_SAL, rec_DEP
FROM EMPLOYEE, DEPARTMENT
WHERE EMPLOYEE.SALARY > 3000;
DBMS_OUTPUT.PUT_LINE ('Employee Nnumber: ' || rec_EMPID);
DBMS_OUTPUT.PUT_LINE ('---------------------------------------------------');
DBMS_OUTPUT.PUT_LINE ('Employee Name: ' || rec_ENAME);
DBMS_OUTPUT.PUT_LINE ('---------------------------------------------------');
DBMS_OUTPUT.PUT_LINE ('Employee Designation: ' || rec_JOB);
DBMS_OUTPUT.PUT_LINE ('----------------------------------------------------');
DBMS_OUTPUT.PUT_LINE ('Employee Salary: ' || rec_SAL);
DBMS_OUTPUT.PUT_LINE ('----------------------------------------------------');
DBMS_OUTPUT.PUT_LINE ('Employee Department: ' || rec_DEP);
END;
/
Run Code Online (Sandbox Code Playgroud) 寻找工具(windows平台)从现有的Oracle数据库中生成ER图(或类似的).
有哪些好的工具可以免费使用或成本低廉?
oracle reverse-engineering data-modeling documentation-generation er-diagram
我有一个有3列的表:
ID, PARENT_ID, NAME
Run Code Online (Sandbox Code Playgroud)
PARENT_IDID在同一个表中具有外键关系.该表正在为层次结构建模.
有时ID记录会改变.我希望能够更新记录ID,然后更新依赖记录' PARENT_ID以指向新记录ID.
问题是,当我尝试更新ID记录时,它会破坏完整性并立即失败.
我意识到我可以使用new插入一个新记录ID,然后更新子项,然后删除旧记录,但是我们有很多触发器,如果我这样做会搞砸.
有没有办法暂时更新父级,承诺更新子级(显然它会在提交时失败)而不会短暂禁用外键?
我是Oracle的新手.我遇到了一个问题.
首先,我想检查sysman帐户的权限:
SQL> select * from dba_sys_privs where grantee='sysman';
no rows selected
Run Code Online (Sandbox Code Playgroud)
我知道这意味着我的视图dba_sys_privs中没有内容.但无论如何,我已经建立了一个数据库.所以,我再试一次,只是缩短声明:
SQL> select * from dba_sys_privs
2
Run Code Online (Sandbox Code Playgroud)
所以这是我的两个问题: