Yıllardır kullandığım bir sorgu aniden garip bir hata atmaya başladı. Sorguya bir kozmetik değişiklik yaptığımda (x + 1 yerine 1 + x), hata artık oluşmaz. Sunucuda bile bulunmayan şikayetçi proc artık!Neden bu sybase hatası, sorgudaki herhangi bir değişiklikle birlikte gider?
Sorunun ne olduğu ve bu "değişiklik" in neden düzeltildiği konusunda herhangi bir fikri olup olmadığını merak ediyorum.
sorgu önce:
UPDATE SOME_DB..JOB_QUEUE
SET ERROR_COUNT = ERROR_COUNT + 1,
JOB_START_TIME = '{1}'
WHERE JOB_ID = {0}
sorgu sonrası:
UPDATE SOME_DB..JOB_QUEUE
SET ERROR_COUNT = 1 + ERROR_COUNT,
JOB_START_TIME = '{1}'
WHERE JOB_ID = {0}
o atar hatası:
Sybase.Data.AseClient.AseException: Procedure sp_net_dblatency expects parameter @heartbeat, which was not supplied.
Herkes neler oluyor herhangi bir fikir olup olmadığını merak edildi İşte?
Düzeltme. Burada saklı proc.
create procedure sp_net_dblatency
@heartbeat datetime
as
update DATABASE_1234..LATENCY set [email protected], END_UTC_TIME=getutcdate() where DATABASE_NAME=db_name()
if (@@ROWCOUNT = 0)
insert DATABASE_1234..LATENCY (DATABASE_NAME, START_UTC_TIME, END_UTC_TIME) values (db_name(), @heartbeat, getutcdate())
Belki de sp'nin saldırıya uğradı ve kod içine @hearbeat parametresi eklendi. Basit düzeltmeniz, yeniden derlenmeye neden oldu. –
Mevcut sp kullanılır ve @heartbeat bir parametredir. Fakat sp aylar önce silinmiştir. – anthonybell
Sp_netiq_dblatency ile ilişkili tüm eş anlamlılar kaldırıldı mı? – xQbert