我被赋予了设计数据库的任务,以便为我们公司存储大量信息.因为任务相当大并且包含用户应该能够做的事情的多个模块,所以我担心为此设计一个好的数据模型.我只是不想最终得到一个设计糟糕的数据库.
我希望有一些合适的数据库结构示例,用于合同/计费/订单等,以便将它们组合在一个漂亮的关系数据库中.有没有资源可以帮我提供一些相关的例子?
What language is used to build low level languages like c++ and java?
How could you build the first language with no language?
有时异常返回类似于:"ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小".
它不是那么可读,因为它既没有报告表,也没有报告它试图写的值.
在异常发生或被捕获时获取当前过程名称会很有用.
我怎么能得到它?
我试图在存储在c:\驱动器名为vin1.txt的文件中写入并收到此错误.请提示!
> ERROR at line 1: ORA-29280: invalid
> directory path ORA-06512: at
> "SYS.UTL_FILE", line 18 ORA-06512: at
> "SYS.UTL_FILE", line 424 ORA-06512: at
> "SCOTT.SAL_STATUS", line 12 ORA-06512:
> at line 1
Run Code Online (Sandbox Code Playgroud)
这是代码
create or replace procedure sal_status
(
p_file_dir IN varchar2,
p_filename IN varchar2)
IS
v_filehandle utl_file.file_type;
cursor emp Is
select * from employees
order by department_id;
v_dep_no departments.department_id%TYPE;
begin
v_filehandle :=utl_file.fopen(p_file_dir,p_filename,'w');--Opening a file
utl_file.putf(v_filehandle,'SALARY REPORT :GENERATED ON %s\n',SYSDATE);
utl_file.new_line(v_filehandle);
for v_emp_rec IN emp LOOP
v_dep_no :=v_emp_rec.department_id; …Run Code Online (Sandbox Code Playgroud) 我想知道Oracle的SYS_GUID()函数是否返回符合RFC 4122的UUID.例如:
SQL> select sys_guid() from dual;
SYS_GUID()
--------------------------------
A6C1BD5167C366C6E04400144FD25BA0
Run Code Online (Sandbox Code Playgroud)
我知道,SYS_GUID()返回一个16字节的RAW数据类型.Oracle使用RAWTOHEX()和可能TO_CHAR()打印出上面的ID.将其解释为符合UUID的字符串格式是否正确:
A6C1BD51-67C3-66C6-E044-00144FD25BA0
Run Code Online (Sandbox Code Playgroud)
我认为它不符合RFC 4122标准,因为定义说,有效的UUID必须在UUID本身内命名UUID-Version.
符合RFC 4122的UUID(版本3)的语法:
xxxxxxxx-xxxx-3xxx-xxxx-xxxxxxxxxxxx
Run Code Online (Sandbox Code Playgroud) 我想将Rownum存储为变量,而不是使用昂贵的Join.我需要从Select语句中获取它,因为Rownum在各种环境中会有所不同,因此它不能是代码中的文字字符串.
对于上下文,此查询在Oracle Siebel CRM架构上执行,并检索某些特定类型和属性的产品.
我尝试在Toad和Oracle SQL Developer中使用以下SQL代码,但是我收到以下错误:
PLS-00428:此SELECT语句中需要一个INTO子句
这是代码
DECLARE
PROD_ROW_ID varchar(10) := NULL;
BEGIN
SELECT ROW_ID INTO VIS_ROW_ID FROM SIEBEL.S_PROD_INT WHERE PART_NUM = 'S0146404';
BEGIN
SELECT rtrim(VIS.SERIAL_NUM) || ',' || rtrim(PLANID.DESC_TEXT) || ',' ||
CASE
WHEN PLANID.HIGH = 'TEST123'
THEN
CASE
WHEN to_date(PROD.START_DATE) + 30 > sysdate
THEN 'Y'
ELSE 'N'
END
ELSE 'N'
END
|| ',' || 'GB' || ',' ||
rtrim(to_char(PROD.START_DATE, 'YYYY-MM-DD'))
FROM SIEBEL.S_LST_OF_VAL PLANID
INNER JOIN SIEBEL.S_PROD_INT PROD
ON PROD.PART_NUM = PLANID.VAL
INNER JOIN SIEBEL.S_ASSET NETFLIX …Run Code Online (Sandbox Code Playgroud) 我有兴趣将Heroku用于我的项目.我现在不想支付它,但免费计划只提供5MB的数据库.
有什么措施可以用来知道在5MB数据库中可以存储多少列/行的简单文本数据?
谢谢
我可以获取包中所有函数的名称吗?假设我有一个包PKG_OWA,我想列出包内的所有程序.
我们刚刚将我们的sql server存储过程转换为oracle程序.Sql Server SP高度依赖于会话表(INSERT INTO #table1...)这些表在oracle中被转换为全局临时表.我们最终为我们的400 SP提供了500 GTT
现在我们发现,由于性能和其他问题,在Oracle中使用GTT是最后的选择.
有什么其他选择吗?收藏?游标?
我们对GTT的典型使用方式如下:
插入GTT
INSERT INTO some_gtt_1
(column_a,
column_b,
column_c)
(SELECT someA,
someB,
someC
FROM TABLE_A
WHERE condition_1 = 'YN756'
AND type_cd = 'P'
AND TO_NUMBER(TO_CHAR(m_date, 'MM')) = '12'
AND (lname LIKE (v_LnameUpper || '%') OR
lname LIKE (v_searchLnameLower || '%'))
AND (e_flag = 'Y' OR
it_flag = 'Y' OR
fit_flag = 'Y'));
Run Code Online (Sandbox Code Playgroud)
更新GTT
UPDATE some_gtt_1 a
SET column_a = (SELECT b.data_a FROM some_table_b b
WHERE a.column_b = b.data_b AND …Run Code Online (Sandbox Code Playgroud)