The UNIX and Linux Forums  
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.

Go Back   UNIX og Linux Forums > Top Forums > UNIX for dummyer Spørgsmål & svar
.
google unix.com



UNIX for dummyer Spørgsmål & svar Hvis du ikke ved, hvor man skal sende en UNIX-eller Linux-spørgsmål, efter det her. Alle UNIX og Linux newbies velkommen!

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
Læs csv i Hash array? kinmak Shell Programmering og Scripting 1 05-07-2008 11:35 AM
skabe array bedrift tegn fra sring derefter echo array. rorey_breaker Shell Programmering og Scripting 5 09-28-2007 09:42 AM
Fra fil til Array Rock Shell Programmering og Scripting 2 02-08-2007 06:10 AM
Dump en array i en fil IMD Shell Programmering og Scripting 3 08-31-2006 11:04 AM
Hvordan kan jeg læse array elementer dynamisk i bash? haisubbu UNIX for dummyer Spørgsmål & svar 1 08-29-2006 03:19 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 10-05-2007
Pinky pinky is offline
Registreret Bruger
  
 

Join Date: Jul 2007
Stillinger: 33
Hvordan læser man fra txt-fil og bruger det som et array

Hi Guys

How u alle gør?

Jeg har hård tid for at nå dette har jeg en unix. Ksh script, der kræver
sql script

Lige nu er jeg harcoded kolonne ID's i SQL-script, men jeg vil læse dem fra en txt-fil
1084,1143,1074,1080,1091,1090,1101,1069,1104,1087,1089,1081

Jeg ønsker at læse denne fil som et array i min sql script


Min ksh script



#! / usr / bin / ksh
DIRNAME \u003d `dirname $ 0«
# Oprettet miljø for Oracle baseret SMO database eksempel
. $ Dirname / defaults_env.ksh

echo "Indtast regionen (dvs. 001 eller 002):"
Læs sdzone;
eksport userfile \u003d "cvsusers.txt"
Logfile \u003d $ dirname / cvs_users_defaults.log
TIME \u003d `date`

# kontrol for at se, om logfilerne er til stede, hvis ikke så skaber det
if [-a $ dirname / cvs_users_defaults.log]

:
anden
touch $ dirname / cvs_users_defaults.log
fi

# Checking for at se, om en datafil (cvsusers.txt) findes for en belastning.
if [-a $ dirname / $ userfile]

# Listen over userIds leveres fra userid fil


Infile \u003d $ userfile;
echo "Brug filen $ infile som input til bruger-id";
echo "";
echo "Startet processen på $ TIME">> $ LOGFILE
echo "Calling procedure for at initialisere brugere"
for userid i `cat $ infile`
gøre
echo "Lagring User Defaults for bruger" $ userid>> $ LOGFILE
userIdLength \u003d `expr længde userid $`
if [$ userIdLength-gt 8]

echo "Længde af UserID" $ userid "er for lang">> $ LOGFILE
anden
echo "forbindelse til SQL">> $ LOGFILE

hvis [[$ sdzone \u003d '001 ']]; derefter
sqlplus-s $ ZONE1_USERNAME_525 / $ ZONE1_PASSWRD_525 @ $ ZONE1_DBNAME_525 \ @ $ dirname / SQL / cvs_users_defaults.sql $ userid>> LOGFILE
echo "forbundet med SQL">> $ LOGFILE


elif [[$ sdzone \u003d '002 ']]; derefter
sqlplus-s $ ZONE2_USERNAME_525 / $ ZONE2_PASSWRD_525 @ $ ZONE2_DBNAME_525 \ @ $ dirname / SQL / cvs_users_defaults.sql $ userid>> LOGFILE
echo "forbundet med SQL">> $ LOGFILE


anden
echo "Ugyldig region kode!"
exit;
fi

fi
gjort


# omdøbe filen efter forarbejdning
logtime \u003d `date" +% y% m% d% H% M% S "`
newUserFile \u003d "cvs_users_processed_" $ logtime ". txt"
mv $ userfile $ newUserFile

echo "Ending processen med at brugeren misligholdelser på $ TIME">> $ LOGFILE
echo "Check logfilen på $ LOGFILE"
exit 0
anden
# HVIS "custsoncologyusers.txt" filen eksisterer ikke i dirname ender gracefully
echo "Ingen bruger standard fil ($ userfile) er tilgængelig til at indlæse"
echo "Ingen bruger standard fil ($ userfile) er tilgængelig til at indlæse">> $ LOGFILE
echo "Ending brugerstandard proces med et afkast kode 0 på $ TIME">> $ LOGFILE
exit 0
fi


Dette er min sql script (cvs_users_defaults.sql)

NAAR SQLERROR EXIT SQL.SQLCODE;
sæt serveroutput om;
sæt kontrollere off;
sæt feedback off;

erklære
userid s_user_cust_acct.user_id% TYPE: \u003d '& 1';
TYPE t_col_id_tab ER TABLE OF nummer;
my_col_id t_col_id_tab;
TYPE t_col_seq_num_tab ER TABLE OF nummer;
my_col_seq_num t_col_seq_num_tab;
TYPE t_all_col_id_tab ER TABLE OF nummer;
all_col_id t_all_col_id_tab;
tcount nummer;
begynd
SELECT COUNT (*)
i tcount
fra s_column_atrb
hvor user_id \u003d UPPER (userid)
og screen_typ_cd \u003d 0;
if (tcount> 0) THEN
dbms_output.put_line ( »ajourføring s_column_atrb '| | userid);

- For ordrer (Jeg skrap kodet array her, men jeg vil læse dette fra. Ksh script ved at fodre den med en txt-fil)
all_col_id: \u003d t_all_col_id_tab (1069,1071,1072,1073,1074,1075,1076,1077,1078,1080,1081,1082,1083,1084,1085,1086,108 7,1088,1089,1090,1091,1101, 1102,1103,1104,1114,1115,1116,1117,1118,1119,1120,1122,1123,1124,1125,112 6,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136 , 1137,1138,1139,1140,1141,1142,1143,1144,1145,114 6,1147,1148,1149,1150,1151,1152,1154,1169,1178,1182,1183,1195);
my_col_id: \u003d t_col_id_tab (1084,1143,1074,1080,1091,1090,1101,1069,1104,1087,1089,1081);

my_col_seq_num: \u003d t_col_seq_num_tab (4,12,2,6,7,8,10,1,9,3,5,11);

For i in 1 .. 12 LOOP
dbms_output.put_line ( 'my_col_id (' | | i | | ') er' | | my_col_id (i));
update s_column_atrb
sæt show_hide_ind \u003d 'Y', column_seq_num \u003d my_col_seq_num (i)
hvor user_id \u003d UPPER (userid)
og screen_typ_cd \u003d 0
og col_id \u003d my_col_id (i);
END LOOP;
øjemed;
/
exit


kan ethvert organ bidrage til at få dette gjort
Thanks in advance
Pinky
  #2 (permalink)  
Old 10-07-2007
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
Moderator
  
 

Join Date: Dec 2003
Beliggenhed: Florida
Posts: 1.927
Den enkleste måde ville være at bygge "cvs_users_defaults.sql" on the fly før
du udfører det.

For eksempel: filen "hovedet" vil indeholde

Code:
WHENEVER SQLERROR EXIT SQL.SQLCODE;
set serveroutput on;
set verify off;
set feedback off;

declare
userId s_user_cust_acct.user_id%TYPE := '&1';
TYPE t_col_id_tab IS TABLE OF number;
my_col_id t_col_id_tab;
TYPE t_col_seq_num_tab IS TABLE OF number;
my_col_seq_num t_col_seq_num_tab;
TYPE t_all_col_id_tab IS TABLE OF number;
all_col_id t_all_col_id_tab;
tcount number;
begin
select count(*)
into tcount
from s_column_atrb
where user_id = UPPER(userId)
and screen_typ_cd = 0;
if (tcount > 0) THEN
dbms_output.put_line('updating s_column_atrb' || userId);
Filen "hale" vil indeholde:

Code:
my_col_seq_num := t_col_seq_num_tab(4,12,2,6,7,8,10,1,9,3,5,11); 

For i in 1..12 LOOP
dbms_output.put_line('my_col_id(' || i || ') is ' || my_col_id(i));
update s_column_atrb
set show_hide_ind = 'Y', column_seq_num = my_col_seq_num(i)
where user_id = UPPER(userId)
and screen_typ_cd = 0
and col_id = my_col_id(i);
END LOOP;
end;
/
exit
og filen "ordrer" vil indeholde "kan modificeres kode"

Code:
-- Orders
all_col_id := t_all_col_id_tab(1069,1071,1072,1073,1074,1075,1076,1077,1078,1080,1081,1082,1083,1084,1085,1086,108 7,1088,1089,1090,1091,1101,1102,1103,1104,1114,1115,1116,1117,1118,1119,1120,1122,1123,1124,1125,112 6,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,114 6,1147,1148,1149,1150,1151,1152,1154,1169,1178,1182,1183,1195);
my_col_id := t_col_id_tab(1084,1143,1074,1080,1091,1090,1101,1069,1104,1087,1089,1081);
Du vil derefter ændre din shell script til at opbygge den sql script som følger:

cat head ordrer hale> cvs_users_defaults.sql

før påberåber cvs_users_defaults.sql
  #3 (permalink)  
Old 10-07-2007
Pinky pinky is offline
Registreret Bruger
  
 

Join Date: Jul 2007
Stillinger: 33
Jeg takker for din hjælp, men jeg er helt forvirret, og fik sendt en ny tråd i forbindelse med denne
Tak for besvarelsen
  #4 (permalink)  
Old 10-08-2007
Pinky pinky is offline
Registreret Bruger
  
 

Join Date: Jul 2007
Stillinger: 33
hey guys

Jeg ønskede at stille mit spørgsmål i detaljer, hvad jeg ønskede at opnå, er

Jeg har txt-fil
som ser sådan her ud

x.txt
5
8
10
15
17
19

Jeg har abc.ksh og xyz.sql scripts

Jeg vil læse x.txt fil i et array i abc.ksh (shell script) og videregive denne matrix til xyz.sql (sql script), hvor jeg ville læse de værdier, der array og bruge disse værdier i logik i xyz. SQL (SQL-script).


Tak
Apprciate nogen hjælp
Jeg er desperat og havde brug for hjælp
Pinky
  #5 (permalink)  
Old 10-08-2007
Pinky pinky is offline
Registreret Bruger
  
 

Join Date: Jul 2007
Stillinger: 33
Hey fpmurphy

hvis jeg ønsker at bygge min. sql-fil på den flue jeg nødt til at gemme hovedet og hale og ordrer som head.sql, tail.sql, og orders.sql
kunne u plz uddybe

Jeg vil gerne vide, om der er en måde, som vi kan sende arrays som parametre fra shell script til sql script

Tusind tak for alle ur hjælp
Pinky
Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 12:55 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0