小编Ale*_*ole的帖子

监听器不支持任何服务

我在Linux机器上安装了Oracle Database 11gR2以及Oracle Grid Infrastructure,然后创建了orcl数据库.

我一直能够使用SQL*Plus或OEM连接到我的数据库.但是最近,我在输入命令时遇到了一个问题lsnrctl status,所以我无法连接到数据库.

我的listener.ora档案:

# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/grid/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = pc.company.com)(PORT = 1521))
    )
  )
ADR_BASE_LISTENER = /u01/app/oracle
Run Code Online (Sandbox Code Playgroud)

我的tnsnames.ora文件:

# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = pc.company.com)(PORT = 1521))
    (CONNECT_DATA …
Run Code Online (Sandbox Code Playgroud)

oracle oracle11g

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

使用一个insert命令插入多行

是否可以使用一个insert语句在表中插入多行?我知道如果我这样做会发生:

insert into table ( fields ) select values from another_table
Run Code Online (Sandbox Code Playgroud)

但是如果我想插入怎么办:

row 1 - ( a1, b1, c1 )
row 2 - ( a2, b2, c2 )
...
row n - ( an, bn, cn )
Run Code Online (Sandbox Code Playgroud)

只有一个插入命令?

sql oracle

5
推荐指数
2
解决办法
6168
查看次数

并排显示两个表中的记录,仅匹配某些字段

我有两张桌子,table A:

Customer_ID  Product  Date Of Sale  Pay Meth 1  Pay Meth 2  QTY
-----------  -------  ------------  ----------  ----------  ---
        123  AB       1/1/2012             111         222    1
        123  AB       1/1/2012             111         222    1
        456  AC       2/1/2012             333         444    1
Run Code Online (Sandbox Code Playgroud)

并且table B:

Customer_ID  Product  Date Of Sale  Pay Meth 1  Pay Meth 2  QTY
-----------  -------  ------------  ----------  ----------  ---
        123  AB       1/1/2012             111         222    2
        456  AB       1/1/2012             124         111    1
Run Code Online (Sandbox Code Playgroud)

我想,这样的客户记录匹配的数据了123table A被归纳为: …

sql oracle

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

BULK收集到一个物体表

在尝试使用BULK COLLECT语句时,我收到了错误ORA-00947: not enough values.

示例脚本:

CREATE OR REPLACE 
TYPE company_t AS OBJECT ( 
   Company          VARCHAR2(30),
   ClientCnt            INTEGER   );
/

CREATE OR REPLACE 
TYPE company_set AS TABLE OF company_t;    
/

CREATE OR REPLACE 
FUNCTION piped_set (
  v_DateBegin IN DATE,
  v_DateEnd IN DATE
)
return NUMBER /*company_set pipelined*/ as
  v_buf company_t := company_t( NULL, NULL);
  atReport company_set;
  sql_stmt VARCHAR2(500) := '';
begin

select * BULK COLLECT INTO atReport
from (
   SELECT 'Descr1', 1 from dual
   UNION
   SELECT …
Run Code Online (Sandbox Code Playgroud)

oracle plsql bulkinsert oracle11g usertype

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

将对象值插入表PL/SQL而无需指定属性

我有以下架构

DROP TABLE ALUMNO_ASIGNATURA;
DROP TABLE ASIGNATURA;
DROP TABLE TITULACION;
DROP TABLE PROFESOR;
DROP TABLE ALUMNO;
DROP TABLE PERSONA;


CREATE TABLE PERSONA
(   DNI             VARCHAR2(9)     CONSTRAINT PERSONA_PK                       PRIMARY KEY, 
    NOMBRE          VARCHAR2(20)    CONSTRAINT PERSONA_NOMBRE_NN                NOT NULL, 
    APELLIDO        VARCHAR2(30)    CONSTRAINT PERSONA_APELLIDO_NN              NOT NULL, 
    CIUDAD          VARCHAR2(20), 
    DIRECCIONCALLE  VARCHAR2(30), 
    DIRECCIONNUM    VARCHAR2(3), 
    TELEFONO        VARCHAR2(9), 
    FECHANACIMIENTO DATE, 
    VARON           VARCHAR2(1)     CONSTRAINT PERSONA_VARON_NN                 NOT NULL 
                                    CONSTRAINT PERSONA_VARON_CK                 CHECK (VARON BETWEEN 0 AND 1)
);

COMMENT ON COLUMN persona.varon IS '0 para mujer, 1 para hombre'; 

CREATE TABLE PROFESOR …
Run Code Online (Sandbox Code Playgroud)

oracle plsql object oracle10g sql-insert

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

SQL*Loader无法识别分隔符"¥"

尝试使用¥分隔符加载UTF-8文件时,它在找到字符时不会分隔字段.我们从超过列大小的值中得到ORA-12899错误,因为它试图将整行放入第一列.

在UTF-8中,¥¥(C2A5),但似乎它试图找到C2C2A5.

数据库设置是

NLS_LANGUAGE    SPANISH
NLS_TERRITORY   SPAIN
NLS_CURRENCY    ?
NLS_ISO_CURRENCY    SPAIN
NLS_NUMERIC_CHARACTERS  ,.
NLS_CHARACTERSET    WE8ISO8859P15
NLS_CALENDAR    GREGORIAN
NLS_DATE_FORMAT DD/MM/RR
NLS_DATE_LANGUAGE   SPANISH
NLS_SORT    SPANISH
NLS_TIME_FORMAT HH24:MI:SSXFF
NLS_TIMESTAMP_FORMAT    DD/MM/RR HH24:MI:SSXFF
NLS_TIME_TZ_FORMAT  HH24:MI:SSXFF TZR
NLS_TIMESTAMP_TZ_FORMAT DD/MM/RR HH24:MI:SSXFF TZR
NLS_DUAL_CURRENCY   ?
NLS_COMP    BINARY
NLS_LENGTH_SEMANTICS    BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_NCHAR_CHARACTERSET  AL16UTF16
NLS_RDBMS_VERSION   11.2.0.3.0
Run Code Online (Sandbox Code Playgroud)

我们尝试过:

NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
NLS_LANG=SPANISH_SPAIN.WE8MSWIN1252
Run Code Online (Sandbox Code Playgroud)

我们从具有西班牙语语言环境的Windows 7计算机上的命令窗口运行SQL*Loader.

控制文件:

LOAD DATA
CHARACTERSET UTF8
INFILE  'C:\tmp\xxxy.txt'
BADFILE 'C:\tmp\xxxy.bad'
TRUNCATE INTO TABLE  SAMPLE.TEST_CAR_VENCIMI_INTERMED
fields terminated by "¥"
TRAILING NULLCOLS
(
CODE             CHAR …
Run Code Online (Sandbox Code Playgroud)

oracle utf-8 delimiter sql-loader

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

在Oracle中插入带序列的多行

这是我用于在oracle数据库中插入多行的查询.但是当我在其中使用序列时,它会引发错误,如ORA-00001:唯一约束.怎么做.

INSERT ALL
  INTO POSTAL_CODE( postal_code,desc)
    VALUES(postal_code.NEXTVAL,'Coimbatore')
  INTO POSTAL_CODE (postal_code,desc)
    VALUES(postal_code.NEXTVAL,'Mumbai') SELECT * FROM DUAL;
Run Code Online (Sandbox Code Playgroud)

oracle sequence multiple-insert

5
推荐指数
2
解决办法
9504
查看次数

在同一选择中使用列别名

如何在同一查询中的其他位置使用列别名?在Oracle可以吗?

使用EMP_ID的示例:

SELECT
    t1.DATE, t2.NAME, t1.ID,
    TO_NUMBER( SUBSTR( t1.NUMBER_ID, - 6)
      || TRIM( TO_CHAR( SUBSTR(EMP_ID, 3, 2), '00' ) ), '999999999999') AS CONTRACT,
    t2.ADDRESS,
    CASE WHEN SUBSTR(t2.COD_EMP, 0, 2) != 'PG' THEN 'PG00'
      || t2.COD_EMP ELSE t2.COD_EMP END AS EMP_ID
FROM
    TABLE_01 t1
    INNER JOIN TABLE_02 t2 .....
Run Code Online (Sandbox Code Playgroud)

sql oracle

5
推荐指数
2
解决办法
3576
查看次数

Oracle 的 Collection<Object> 教程令人困惑

我正在学习 Java 泛型并阅读泛型方法

此页面开头为

考虑编写一个方法,该方法接受一个对象数组和一个集合,并将数组中的所有对象放入集合中

然后它指出

到现在为止,您将学会避免初学者尝试使用Collection<Object>集合参数的类型的错误。

该页面推断使用Collection<Object>将不起作用。

为什么这是一个错误?为什么这是初学者的错误?

Collection<Object>因为该参数对我来说效果很好。我是不是太初学者了,以至于我以某种方式编写了可以工作的代码,但却错过了练习的重点?

import java.util.ArrayList;
import java.util.Collection;

public class test {

    static void fromArrayToCol(Object a[],Collection<Object> c)
    {
     for (Object x:a){c.add(x);}
     System.out.println(c);
    }

    public static void main(String[] args) {
        test r=new test();
        Object[] oa=new Object[]{"hello",678};
        Collection<Object> c=new ArrayList<>();

        test.fromArrayToCol(oa,c);
    }
}
Run Code Online (Sandbox Code Playgroud)

在我看来,Oracle 的教程的断言是错误的。但我是初学者,所以很可能我没有理解它想告诉我的内容。

java generics collections object

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

创建字母数字序列

我想创建一个生成以下值的序列:

A00000000
A00000001
..
..
..
A99999999
B00000000
B00000001
..
..
Run Code Online (Sandbox Code Playgroud)

它应该用初始字母字符A生成,一旦达到A99999999,它应该更改为B,依此类推.

Oracle中的正常序列不会提供字母数字序列.如何在此模式中生成顺序值?

sql oracle plsql function sequence

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