hallo erstmal folgendes problem besteht immer noch ich muss eine spalte aus einer tabelle kopieren und in eine andere tabelle kopieren (verknüpfen) diese tabelle liegt natürlich nicht auf dem selben server !!!wer kann mir helfen???
das skript sieht ungefähr so aus
#!/bin /sh
server1=xxx
user1=xxx
pw=xxx
server2=xxx
user2=xxx
pw2=xxx
echo"temporäre tabelle auf server1 anlegen"
sqsh w-2000 -S$server1 -U$user1 -P$pw <"$dir_daten$datei"
use sever1
go
set nocount on
go
create table #temp_E1_p
(
E1 char(6) null,
fx char(6) null
)
go
insert into #temp_E1_p
select
E1=substring(a.bemerkung,charindex("(",a.bemerkung )+1,1),
fx= “f” +b.ne_typ+b.ne_code
from fv_mass a,fv_funkel b,fv_termine c
where a.id_funkel=b.id_funkel
and a.id_mass=c.id_mass
and a.kategorie like"E1_Extension"
and c.Ist_tch_in_Sv=null
\bcp -S$server2 -U$user2 -P$pw2 server2…(???)
go
END
echo “ausgabefile:”
sqsh -w2000 -S$server2 -U$user2 -P$pw2<"$dir_daten$datei"
use server2
select * from #temp_E1_p
go
end
echo"ausgabefile
exit"
Nach kurzer Gugelei scheint Dein sqsh ein Tools für Sybase zu sein. Das KANN also nicht funktionieren, da wir hier PostgreSQL haben. Von weiteren Fehlern mal ganz abgesehen…
Danke erstmal für die antwort das problem ist in diesem Fall das ich aber nur die Daten bis Dato dann kopiert habe es kommen aber täglich neue datensätze hinzu deswegen will ich ja ein skript schreiben das einmal am tag die daten von der einen tabelle holt und in der neuen tabelle hinzufügt bzw. updated!!!
das problem ist ,wenn die tabelle kopiert wird sind die daten nur bis zu dem kopier vorgang inder View enthalten und ich müsste die daten dann manuel immer wieder kopieren und neu einfügen :confused der nicht?
Ich will mal nicht so sein. Hier ein Script, welches eine Tabelle auf eine andere abbildet.
Dabei läuft alles auf dem selbern Server und DB ab, aber das sind Aufrufparameter, die man leicht ändern kann.
Natürlich müßte man bei 2 unterschiedlichen Servern die Datei noch rübertragen, aber SCP wurde zum Glück schon erfunden.
kretschmer@apache-new:~$ cat demo.sh
#!/bin/sh
psql -h localhost test -c "create table source (id int primary key, name text)"
psql -h localhost test -c "create table destination (id int primary key, name text)"
# nun source fuellen
psql -h localhost test -c "insert into source values (1,'foo')"
# nun der Transfer
psql -h localhost test -c "copy source(id, name) to '/tmp/transfer.copy' csv"
psql -h localhost test -c "create table transfer(id int, name text)"
psql -h localhost test -c "copy transfer from '/tmp/transfer.copy' csv"
psql -h localhost test -c "update destination set name=(select name from transfer) where id=id"
psql -h localhost test -c "insert into destination select id, name from transfer where id not in (select id from destination)"
psql -h localhost test -c "select * from destination"
kretschmer@apache-new:~$
Anwendung:
kretschmer@apache-new:~$ ./demo.sh
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "source_pkey" for table "source"
CREATE TABLE
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "destination_pkey" for table "destination"
CREATE TABLE
INSERT 0 1
COPY 1
CREATE TABLE
COPY 1
UPDATE 0
INSERT 0 1
id | name
----+------
1 | foo
(1 row)
Davon abgesehen, man könnte dafür auch eine Replizierungslösung a la Slony verwenden.
also ich muss mich wirklich für die ganze mühe ausserordentlich bedanken !!! das mit dem kopieren habe ich jetzt nach längeren hin und her hin bekommen es funkt alles soweit jetzt muss ich nur noch die tabelle updaten !!!
da hängt es mal wieder nach dem bcp vom server1 auf server2 ignoriert der rechner alles er gibt noch nicht mal ein kommentar aus(echo “hallooo”)!!!
Ansonsten, welche Zeile in meinem Script hast Du nicht verstanden? Ist es die mit dem Update?
da hängt es mal wieder nach dem bcp vom server1 auf server2 ignoriert der rechner alles er gibt noch nicht mal ein kommentar aus(echo “hallooo”)!!! > >