Jump to content

EREGON

Members
  • Content count

    9
  • Joined

  • Last visited

Community Reputation

0 Comum

About EREGON

  1. EREGON

    Função PL/SQL com erro

    Olá, ao chamar a função, estou a receber o erro: "ORA-01422: extracção exacta devolve mais que o número pedido de linhas" create or replace FUNCTION "CALC_ADDT_SIM_DISC" (ACCT_INPUT VARCHAR2) RETURN VARCHAR2 IS SIM_MSISDN VARCHAR2(20); BEGIN SELECT CASE WHEN ADDT_DISC_1 = 1 THEN mu.MSISDN WHEN ADDT_DISC_1 > 1 THEN (SELECT DISTINCT t02.MSISDN FROM CDM.DMKV_TRANSP_VAR_RESULT_02 t02 WHERE SERV_ACCT_OLDER_MSISDN_FLG = 'Y' AND PRICING_PLAN_TYPE IN ('valor1', 'valor2') AND t02.DW_SERV_ST_ID='100000003' AND t02.CUST_ACCT_EXT_KEY = ACCT_INPUT ) END MSISDN_ADDT_DISC INTO SIM_MSISDN FROM( SELECT DISTINCT CUST_ACCT_EXT_KEY, COUNT(CUST_ACCT_EXT_KEY) AS ADDT_DISC_1 FROM MOBILE_UPSELL WHERE FLAG_ADDITIONAL_SIM_DISCOUNT = '0' GROUP BY CUST_ACCT_EXT_KEY )t, MOBILE_UPSELL mu WHERE t.CUST_ACCT_EXT_KEY = mu.CUST_ACCT_EXT_KEY AND t.CUST_ACCT_EXT_KEY = ACCT_INPUT; RETURN SIM_MSISDN; END; O que estou a fazer de errado? Obrigado
  2. Bom dia, estou a tentar fazer um exercício para, dado um ficheiro .txt na directoria do programa, terei de encontrar todas as palavras que são palíndromos. Tendo este código para ler as palavras do ficheiro .txt (letra a letra) para uma matrix. Estando as palavras armazenadas numa matrix, como faço essa validação? Obg, #include <stdio.h> #include <stdlib.h> int main(int argc, char const *argv[]) { FILE* inp; inp = fopen("palindromo.txt","r"); char arr[100][50]; int i = 0; while(1){ char r = (char)fgetc(inp); int k = 0; while(r!=',' && !feof(inp)){ //Le ate fim de ficheiro arr[i][k++] = r; //armazena no array r = (char)fgetc(inp); } arr[i][k]=0; //ultimo carater nulo //Alguma parte aqui, valida se a palavra e PALINDROMO. //COMO?? if(feof(inp)){ //valida EOF break; } i++; } int j; for(j = 0;j<=i;j++){ printf("%s\n",arr[j] ); //Imprime array } return 0; }
  3. EREGON

    Erro Conversão VARCHAR2 to NUMBER

    Bom, resolveu com o: to_number(replace(TBL_NUMBER, '.', ',')) no WHERE Obg,
  4. EREGON

    Erro Conversão VARCHAR2 to NUMBER

    Descobri que existem valores nessa coluna que estão, neste formato: 1.01251454874587e-06 Será isto que estará a causar problemas? Além de existirem valores negativos: -0.121547874
  5. EREGON

    Erro Conversão VARCHAR2 to NUMBER

    Nada, ORA-01722: número inválido 01722. 00000 - "invalid number" *Cause: The specified number was invalid. *Action: Specify a valid number. não tenho virgulas nessa coluna Será pela quantidade de casas decimais?
  6. EREGON

    Erro Conversão VARCHAR2 to NUMBER

    Olá, já tentei NUMBER COM FORMAT e dá: ORA-01722: número inválido 01722. 00000 - "invalid number" *Cause: The specified number was invalid. *Action: Specify a valid number. Os valores que tenho nessa coluna estão com "Ponto", ex: 8.1112222245858 0 1.233332225566 etc. SELECT TO_NUMBER(TBL_NUMBER, '9999.99') FROM MOBILE_UPSELL
  7. Bom dia, tenho uma tabela cuja estrutura está toda em VARCHAR. Essa tabela contem algumas colunas com valores decimais, e quero executar algumas queries para fazer algumas operações aritméticas, como: -Devolver valores maiores que xx.xx, etc. Mas estou a ter erros, como: ORA-12801: erro assinalado no servidor de consulta paralela P009, instance ptlhb100.pt.sedc.internal.vodafone.com:CSTMRDM2 (2) ORA-01722: número inválido 12801. 00000 - "error signaled in parallel query server %s" *Cause: A parallel query server reached an exception condition. *Action: Check the following error message for the cause, and consult your error manual for the appropriate action. *Comment: This error can be turned off with event 10397, in which case the server's actual error is signaled instead. Estou a executar a querie: SELECT TBL_NUMBER FROM MOBILE_UPSELL tl WHERE TO_NUMBER(tl.ARPU_MIB) < 8.01 Já tentei TO_BINARY_NUMBER e dá o mesmo erro. O que está mal aqui? Obrigado Paulo
  8. Bom dia, Muito obrigado. Resultou muito bem. PS
  9. Olá, Eu tenho uma tabela com 7 colunas. A primeira coluna tem o nome das pessoas. Da coluna 2 à coluna 7 tem valores (de 0,0 a 15,0) de MONTH_1 a MONTH_6, portanto: Column_1 = nome; Column_2 = MONTH_1; Column_3 = MONTH_2; Column_4 = MONTH_3; e assim por diante... Agora eu quero recuperar registos que tenham valor > = 0,55 em pelo menos 2 ou mais colunas desses meses. Como posso fazer esse cálculo?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.