标签: plsql

有没有将SAS转换为SQL的工具?

我遇到了一个4页的SAS东西 - 宏?程序?它有程序,DATA块和PROC块,一个用于从Oracle导入的PROC SQL块.

有没有一种工具可以将SAS转换为可读的东西?理想的是SQL或PL/SQL(这两者似乎都适用),但几乎任何程序都是一种改进.我不需要可运行的东西,只需要人类可读的东西.

我已经知道2种死语言(TAL和TACL) - 有人请我免于学习SAS.

sql oracle plsql sas

1
推荐指数
2
解决办法
1万
查看次数

Oracle双重查询

我有这样的查询:

SELECT X.Y( 'p1', 'p2', 'p3', 'p4', '100') 
  FROM dual
Run Code Online (Sandbox Code Playgroud)

我知道双重是什么,但这部分X.Y( 'p1', 'p2', 'p3', 'p4', '100')真让我惊讶.这种语法意味着什么?

是X和Y表或什么?

oracle plsql oracle11g

1
推荐指数
1
解决办法
234
查看次数

无法删除刚刚创建的表

我创建了一个名为的表dual2.我在那里有一行,可以从中选择.尝试删除它时,会产生此错误:

第1行的错误:
ORA-00604:递归SQL级别1发生错误
ORA-00942:表或视图不存在

但是,表仍然存在!它从dba_tables和返回user_tables.

关于这里发生了什么的任何想法?

alt text http://img180.imageshack.us/img180/6012/28140463.png

这是我用plsql开发人员创建的表创建脚本:

-- Create table
create table
(
  DUMMY VARCHAR2(1)
)
tablespace SYSTEM
  pctfree 10
  pctused 40
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );
Run Code Online (Sandbox Code Playgroud)

PS:p.cambell感谢您的编辑!抱歉我的英语不好:)

sql oracle plsql ora-00942

1
推荐指数
1
解决办法
2725
查看次数

缺少括号

这是我正在运行的脚本

DROP SEQUENCE S_JobStatus;

CREATE SEQUENCE S_JobStatus
    INCREMENT BY 1
    START WITH 1
    NOMAXVALUE 
    NOMINVALUE 
;
-- 
-- TABLE: JobStatus 
--

DROP TABLE JobStatus;
CREATE TABLE JobStatus(
    Id             NUMBER(10, 0)    NOT NULL,
    ShortName      NUMBER(10, 0)    NOT NULL,
    Description    NUMBER(10, 0)    NOT NULL,
    CONSTRAINT PK_JobStatus PRIMARY KEY (Id)
)
;
/* DROP TRIGGER JobStatus_SequenceTrigger; */
CREATE TRIGGER JobStatus_SequenceTrigger
BEFORE INSERT
ON JobStatus
    FOR EACH ROW
    WHEN new.Id IS NULL
    BEGIN
        SELECT S_JobStatus.nextval into :new.Id from dual
    END;
Run Code Online (Sandbox Code Playgroud)

这是Oracle SQL Developer中的输出

DROP …
Run Code Online (Sandbox Code Playgroud)

oracle triggers plsql

1
推荐指数
1
解决办法
1621
查看次数

ORA-06502:PL/SQL:数字或值错误:字符串缓冲区错误太小

我有一个oracle函数,如下所示.当我在sql-developer中运行它时会出错

ORA-06502:PL/SQL:数字或值错误:字符串缓冲区错误太小.

但是,DBMS_OUTPUT.PUT_LINE(FINAL_RESULT)函数中的行正在输出窗口中打印预期的输出.

任何人都可以帮我吗?

create or replace
FUNCTION AVERAGE_WORKFORCE(PERIOD in varchar2, YR in varchar2)  RETURN CLOB AS 
FINAL_RESULT CLOB:=null;
STRING_QUERY_TEXT CLOB:=null;
OUTPUT_RESULT CLOB:=null;
BEGIN
    FINAL_RESULT:='<FINAL_RESULT><HEADER><NAME> </NAME> <NAME>SENIOR DIRECTOR</NAME> <NAME>DIRECTOR</NAME> <NAME>EXECUTIVE</NAME> <NAME>MANAGER</NAME><NAME>CASHIER</NAME><NAME>EMPLOYEE</NAME></HEADER>';    
    STRING_QUERY_TEXT:='SELECT XMLElement("tuple",XMLElement("DESC",''Average number of registered employees''),  XMLElement("PERMANENT_EMP",GET_COUNT_AVERAGE_WORKFORCE('''||PERIOD||''','''||YR||''',''SENIOR DIRECTOR'')),  XMLElement("PERMANENT_EMP",GET_COUNT_AVERAGE_WORKFORCE('''||PERIOD||''','''||YR||''',''DIRECTOR'')),  XMLElement("PERMANENT_EMP",GET_COUNT_AVERAGE_WORKFORCE('''||PERIOD||''','''||YR||''',''MANAGER'')),  XMLElement("PERMANENT_EMP",GET_COUNT_AVERAGE_WORKFORCE('''||PERIOD||''','''||YR||''',''EXECUTIVE'')),  XMLElement("PERMANENT_EMP",GET_COUNT_AVERAGE_WORKFORCE('''||PERIOD||''','''||YR||''',''CASHIER'')),  XMLElement("PERMANENT_EMP",GET_COUNT_AVERAGE_WORKFORCE('''||PERIOD||''','''||YR||''',''EMPLOYEE''))) FROM DUAL';     
    EXECUTE_QUERY_RETURN_RESULT(STRING_QUERY_TEXT,OUTPUT_RESULT);       
    FINAL_RESULT:=FINAL_RESULT||''||OUTPUT_RESULT; 
    FINAL_RESULT:=FINAL_RESULT||''||'</FINAL_RESULT>';
    DBMS_OUTPUT.PUT_LINE(FINAL_RESULT);
    RETURN FINAL_RESULT;
END AVERAGE_WORKFORCE;
Run Code Online (Sandbox Code Playgroud)

oracle plsql

1
推荐指数
1
解决办法
5万
查看次数

Oracle中的数据类型不一致

我有以下功能:

create or replace
FUNCTION "MXUPGKEYVAL"(tbname varchar2,colname varchar2) return number is
val number;

BEGIN

EXECUTE IMMEDIATE
'select sum(length('||colname||')) from '||tbname into val;

return val;
END;
Run Code Online (Sandbox Code Playgroud)

以及更新:

update ANINTEGDATA set val1=to_char(nvl(MXUPGKEYVAL(MX5T,MX5C),0)) where type=1;
Run Code Online (Sandbox Code Playgroud)

当我执行更新时,我得到:

ORA-00932: inconsistent datatypes: expected NUMBER got LONG
ORA-06512: at "MAXIMO.MXUPGKEYVAL", line 6
ORA-06512: at line 2
Run Code Online (Sandbox Code Playgroud)

知道为什么会这样吗?

此致,Radu.

稍后编辑:

表ANINTEGDATA是:

create table ANINTEGDATA
(
  MX5T VARCHAR2(50),
  MX5C VARCHAR2(50),
  MX6T VARCHAR2(50),
  MX6C VARCHAR2(50),
  TYPE NUMBER,
  VAL1 VARCHAR2(200),
  VAL2 VARCHAR2(200)
);
Run Code Online (Sandbox Code Playgroud)

oracle plsql ora-00932

1
推荐指数
1
解决办法
1533
查看次数

如何在Oracle10g for Linux中运行PL/SQL程序

BEGIN
  dbms_output.put_line('Welcome to PL/SQL');
END;
/
Run Code Online (Sandbox Code Playgroud)

我在sample.sql文件中有这个代码.
怎么跑sample.sql?

oracle plsql oracle10g

1
推荐指数
1
解决办法
1万
查看次数

使用pl/sql如何在目录中找到文件并移动文件?

使用pl/sql如何在目录中找到文件并移动文件?

oracle plsql file

1
推荐指数
1
解决办法
1万
查看次数

我如何获得每个类别的前n个记录

我在这里根据类别获取记录.

我的表foo有字段[id,name,class].我的记录可以像:

1, ram, 10
2, hari, 9
3, sita, 10
4, gita, 9
5, rita, 5
6, tina, 7
8, nita, 8
9, bita, 5
10,seta, 7
Run Code Online (Sandbox Code Playgroud)

...和更多...

现在我想得到来自不同类的每条记录的结果..即类似的东西

1, ram, 10
2, hari, 9
5, rita, 5
6, tina, 7
8, nita, 8
Run Code Online (Sandbox Code Playgroud)

即按班级排名前1位

mysql sql t-sql sql-server plsql

1
推荐指数
1
解决办法
5938
查看次数

OR子句是否会抑制oracle中的索引?

OR子句是否会抑制索引,如果是,有人可以提供适当的示例吗?

create table test2(field1 varchar2(100),field2 varchar2(100),
                   field3 number,field4 varchar2(100));

create index test2_idx1 on test2(field1);

create index test2_idx2 on test2(field3);

declare
  j number :=1;
begin
  for i in 1..500000 loop
    insert into test2 (field1,field2,field3,field4)
    values('field1='||j,'field2='||i,j,'field4='||??i);
    if (i mod 1000)=0 then 
      j:= j+1;
    end if; 
  end loop;
  commit;
end;

EXEC DBMS_STATS.GATHER_TABLE_STATS ('user', 'test2');

select * from test2 where field1='field1=1' or field3=1;
Run Code Online (Sandbox Code Playgroud)

sql oracle indexing plsql

1
推荐指数
1
解决办法
4496
查看次数

标签 统计

plsql ×10

oracle ×9

sql ×4

file ×1

indexing ×1

mysql ×1

ora-00932 ×1

ora-00942 ×1

oracle10g ×1

oracle11g ×1

sas ×1

sql-server ×1

t-sql ×1

triggers ×1